【发布时间】:2011-01-04 06:38:56
【问题描述】:
又是一个问题。这次我正在解析从服务器接收到的 XML 消息。 有人认为自己很聪明,决定将 HTML 页面放在 XML 消息中。现在我有点面临问题,因为我想从这个 XML 消息中提取那个 HTML 页面作为字符串。
好的,这是我正在解析的 XML 消息:
<AmigoRequest>
<From></From>
<To></To>
<MessageType>showMessage</MessageType>
<Param0>general message</Param0>
<Param1><html><head>test</head><body>Testhtml</body></html></Param1>
</AmigoRequest>
您会看到在 Param1 中指定了一个 HTML 页面。我尝试通过以下方式提取消息:
公共字符串 getParam1(文档 d){ if (d.getDocumentElement().getTagName().equals("AmigoRequest")) { NodeList 结果 = d.getElementsByTagName("Param1"); // 消息类型取决于我们正在阅读的消息。 if (results.getLength() > 0 && results != null) { 返回结果.item(0).getFirstChild().getNodeValue(); } } 返回 ””; }其中 d 是文档形式的 XML 消息。 它总是返回一个空值,因为 getNodeValue() 返回空值。 当我尝试 results.item(0).getFirstChild().hasChildNodes() 时,它会返回 true,因为他看到消息中有一个标签。
如何从字符串中的 Param0 中提取 html 消息 <html><head>test</head><body>Testhtml</body></html>?
我正在使用 Android sdk 1.5(几乎是 java)和一个 DOM 解析器。
感谢您的宝贵时间和回复。
安泰克
【问题讨论】:
-
可以选择 XPath 吗?如果是这样,我也许可以为您提供帮助,而且我从未使用过 andriod,这就是我问的原因。
-
XPath 不受支持,但我设法通过使用 DOM4J 和 Jaxen 找到了适用于 Android 的解决方法。
标签: java xml android parsing domparser