再次提出一個問題。這一次我正在解析從服務器接收到的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