如何在Java中解析.plist文件? [英] How to parse .plist file in Java?

查看:535
本文介绍了如何在Java中解析.plist文件?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图用Java解析.plist文件,但不了解如何.我使用了DOM解析器,但它给出了一个错误,并且无法读取.plist文件.

I am trying to parse a .plist file in Java but not understanding how. I used a DOM parser but it gives an error and is not able to read .plist file.

这是我的plist文件:

This is my plist file:

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">
<dict>
<key>All Samples</key>
<array>
    <dict>
        <key>Message</key>
        <string>1) UIATarget </string>
        <key>Timestamp</key>
        <date>2011-07-06T19:40:09Z</date>
        <key>Type</key>
        <integer>0</integer>
    </dict>

这是我的main函数:

 public static void main(String[] args) throws XMLStreamException, IOException {
    InputStream in = new FileInputStream("File.plist");
    XMLInputFactory factory = XMLInputFactory.newInstance();
    XMLEventReader parser = factory.createXMLEventReader(in);

    assert parser.nextEvent().isStartDocument();

    XMLEvent event = parser.nextTag();
    //System.out.println(event.getClass());
    assert event.isStartElement();
    final String name1 = event.asStartElement().getName().getLocalPart();

    if (name1.equals("dict")) {
        while ((event = parser.nextTag()).isStartElement()) {
            final String name2 = event.asStartElement().getName().getLocalPart();

            if (name2.equals("key")) {
                String key = parser.getElementText();
                System.out.println("key: " + key);

            } else if (name2.equals("String")) {
                String number = parser.getElementText();
                System.out.println("date: " + number);

            } else if (name2.equals("date")) {
                String str = parser.getElementText();
                System.out.println("date: " + str);
            }
        }
    }

    assert parser.nextEvent().isEndDocument();
}

推荐答案

如果我是我,我会使用 code.google.com/xmlwise .它是专门为处理.plist文件而设计的.

If I were you I'd use the PList class from code.google.com/xmlwise. It's specifically designed for dealing with .plist files.

这篇关于如何在Java中解析.plist文件?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆