【问题标题】:java library for Apple PropertyList-1.0.dtdApple PropertyList-1.0.dtd 的 java 库
【发布时间】:2013-12-29 13:31:41
【问题描述】:

我需要用这样的头文件读入内存 XML 文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">

它是 XML "Apple Property List" 。 XML Schema is below:

<!ENTITY % plistObject "(array | data | date | dict | real | integer | string | true | false )" >
<!ELEMENT plist %plistObject;>
<!ATTLIST plist version CDATA "1.0" >

<!-- Collections -->
<!ELEMENT array (%plistObject;)*>
<!ELEMENT dict (key, %plistObject;)*>
<!ELEMENT key (#PCDATA)>

<!--- Primitive types -->
<!ELEMENT string (#PCDATA)>
<!ELEMENT data (#PCDATA)> <!-- Contents interpreted as Base-64 encoded -->
<!ELEMENT date (#PCDATA)> <!-- Contents should conform to a subset of ISO 8601 (in particular, YYYY '-' MM '-' DD 'T' HH ':' MM ':' SS 'Z'.  Smaller units may be omitted with a loss of precision) -->

<!-- Numerical primitives -->
<!ELEMENT true EMPTY>  <!-- Boolean constant true -->
<!ELEMENT false EMPTY> <!-- Boolean constant false -->
<!ELEMENT real (#PCDATA)> <!-- Contents should represent a floating point number matching ("+" | "-")? d+ ("."d*)? ("E" ("+" | "-") d+)? where d is a digit 0-9.  -->
<!ELEMENT integer (#PCDATA)> <!-- Contents should represent a (possibly signed) integer number in base 10 -->

这种数据格式的正确名称是什么?

使用什么 Java 库来读取此类文件? 我想进入内存标准 Java 集合(实现 List 和/或 Set)

相关:

这两个问题都是 2 年前的问题,所以也许有更好的方法?

【问题讨论】:

    标签: java xml collections plist in-memory


    【解决方案1】:

    与http://code.google.com/p/plist/一起去

    <dependency>
        <groupId>com.googlecode.plist</groupId>
        <artifactId>dd-plist</artifactId>
        <version>1.3</version> <!-- corresponds to r103 -->
    </dependency>
    

    在http://code.google.com/p/plist/wiki/Examples

    您可以为PropertyListParser 提供File、InputStreams 或字节数组。 PropertyListParser 的 parse 方法将解析输入并给你一个 NSObject 作为结果。通常这是一个 NSDictionary,但它也可以是一个 NSArray。

    有转换器 toJavaObject()

     Object com.dd.plist.NSObject.toJavaObject()
    
    
    Converts this NSObject into an equivalent object of the Java Runtime Environment. 
    
    NSArray objects are converted to arrays. 
    NSDictionary objects are converted to objects extending the java.util.Map class. 
    NSSet objects are converted to objects extending the java.util.Set class. 
    NSNumber objects are converted to primitive number values (int, long, double or boolean). 
    NSString objects are converted to String objects. 
    NSData objects are converted to byte arrays. 
    NSDate objects are converted to java.util.Date objects. 
    UID objects are converted to byte arrays. 
    Returns:
    A native java object representing this NSObject's value.
    

    【讨论】:

      【解决方案2】:

      【讨论】:

      • 要么需要更多细节,要么需要更好的格式。另外,为链接提供一些上下文。
      猜你喜欢
      • 1970-01-01
      • 2012-07-30
      • 2011-05-08
      • 1970-01-01
      • 2011-01-20
      • 2012-02-07
      • 1970-01-01
      • 2012-03-24
      • 2020-04-16
      相关资源
      最近更新 更多