【问题标题】:XML String parsing in Android?Android中的XML字符串解析?
【发布时间】:2010-12-14 07:44:05
【问题描述】:

我使用下面的代码来解析 XML 文件。

DocumentBuilderFactory factory;
DocumentBuilder builder;
InputStream is;
Document dom;
try {
    factory = DocumentBuilderFactory.newInstance();
    is = new FileInputStream(strFileName);
    builder = factory.newDocumentBuilder();

    dom = builder.parse(is);
}
catch(Exception e){}

有什么方法可以代替 XML 文件来解析字符串。

String xml="<?xml version="1.0"?> <name> Application</name> <demo> Demo </demo> </xml>";

【问题讨论】:

  • 你想要做什么是非常不清楚的。如果您已经有一个字符串 - 为什么还需要 XML 解析器?

标签: android


【解决方案1】:

您可以使用 ByteArrayInputStream 将字符串转换为 InputStream:

String xml ="valid xml here";
InputStream is = new ByteArrayInputStream(xml.getBytes("UTF-8"));

dom = builder.parse(is);

【讨论】:

  • 我在使用您的代码时遇到了这个问题 java.lang.NullPointerException: Attempt to invoke virtual method 'org.w3c.dom.Document javax.xml.parsers.DocumentBuilder.parse(org.xml.sax .InputSource)' 在空对象引用上
【解决方案2】:

你可以使用StringReader

StringReader sr = new StringReader(xml);
InputSource is = new InputSource(sr);
Document d = builder.parse(is);

【讨论】:

  • 第二行应该改成InputSource is = new InputSource(sr);吗?
  • 我在使用您的代码时遇到了这个问题 java.lang.NullPointerException: Attempt to invoke virtual method 'org.w3c.dom.Document javax.xml.parsers.DocumentBuilder.parse(org.xml.sax .InputSource)' 在空对象引用上
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-25
相关资源
最近更新 更多