再次提出一个问题。这一次我正在解析从服务器接收到的XML消息。 有人认为是聪明的,并决定将HTML页面放在XML消息中。现在我遇到了一些问题,因为我想从该XML消息中提取该HTML页面作为字符串。Android:解析XML DOM解析器。将子节点转换为字符串
好吧,这是我解析XML消息:
<AmigoRequest> <From></From> <To></To> <MessageType>showMessage</MessageType> <Param0>general message</Param0> <Param1><html><head>test</head><body>Testhtml</body></html></Param1> </AmigoRequest>
你看,在参数1中指定的HTML页面。我尝试通过以下方式提取消息:
public String getParam1(Document d) { if (d.getDocumentElement().getTagName().equals("AmigoRequest")) { NodeList results = d.getElementsByTagName("Param1"); // Messagetype depends on what message we are reading. if (results.getLength() > 0 && results != null) { return results.item(0).getFirstChild().getNodeValue(); } } return ""; }
其中,d是文档格式的XML消息。 它总是返回一个空值,因为getNodeValue()返回null。 当我尝试results.item(0).getFirstChild()。hasChildNodes()时,它将返回true,因为他看到消息中有一个标记。
如何从Param0中提取html消息<html><head>test</head><body>Testhtml</body></html>
中的字符串?
我正在使用Android sdk 1.5(几乎是java)和一个DOM解析器。
感谢您的时间和答复。
ANTEK
是XPath的一个选择吗?如果是这样,我可能会帮助你,而我从来没有使用过,这就是我问的原因。 – ChadNC 2010-01-12 17:35:17
XPath不受支持,但我设法通过使用DOM4J和Jaxen来为Android找到解决方法。 – 2010-01-13 09:20:38