【发布时间】:2011-10-29 04:00:16
【问题描述】:
我正在使用 DOM 来解析 XML 字符串,如下例所示。除了在一种情况下,这很好用。我试图解析的文档如下所示:
<response requestID=\"1234\">
<expectedValue>Alarm</expectedValue>
<recommendations>For steps on how to resolve visit <a href=\"some website\">Website</a> and use the search features for \"Alarm\"<recommendations>
<setting>Active</setting>
<response>
我用来解析XML的代码如下:
try {
DocumentBuilder db = DocumentBuilderFactory.newInstance().newDocumentBuilder();
InputSource is = new InputSource();
is.setCharacterStream(new StringReader(xmlResult));
Document doc = db.parse(is);
NodeList nlResponse = doc.getElementsByTagName("response");
String[] String = new String[3]; //result entries
for (int i = 0; i < nlResponse.getLength(); i++) {
Element e = (Element) nlResponse.item(i);
int c1 = 0; //count for string array
NodeList ev = e.getElementsByTagName("expectedValue");
Element line = (Element) ev.item(0);
String[c1] = (getCharacterDataFromElement(line));
c1++;
NodeList rec = e.getElementsByTagName("recommendations");
line = (Element) rec.item(0);
String[c1] = (getCharacterDataFromElement(line));
c1++;
NodeList set = e.getElementsByTagName("settings");
line = (Element) set.item(0);
String[c1] = (getCharacterDataFromElement(line));
c1++;
我能够解析代码并将结果放入字符串数组(与 System.out.println() 不同)。使用当前代码,我的字符串数组如下所示:
String[0] = "Alarm"
String[1] = "For steps on how to resolve visit"
String[2] = "Active"
我希望能够通过某种方式读取“建议”中的其余信息,以便最终在 TextView 中显示超链接(以及其他输出)。我该怎么做?
【问题讨论】:
-
我认为没有人可以在没有看到您的代码的情况下回答这个问题(没有为您编写 while 的东西)
-
对不起...我打算发布此链接。我的代码(用于解析)看起来基本相同。 java2s.com/Code/Java/XML/…
-
编辑您的问题以包含您的实际代码的相关部分。
-
作为旁注,来源对我来说看起来很奇怪。通常 将被编码为 <和>。这可以解释为什么您的解析器会做一些狡猾的事情。
-
@Philippe:这是有效的 XML。允许混合内容。
标签: java android xml parsing xml-parsing