다시 질문. 이번에는 서버에서받은 XML 메시지를 파싱합니다. 누군가가 현명하다고 생각하고 HTML 페이지를 XML 메시지에 삽입하기로 결정했습니다. 이제 HTML 페이지를이 XML 메시지에서 문자열로 추출하기 때문에 문제가 발생합니다. 당신은 Param1을에 HTML 페이지가 지정되어 있는지 볼Android : XML DOM 파서를 구문 분석합니다. 문자열을 자식 노드로 변환
<AmigoRequest> <From></From> <To></To> <MessageType>showMessage</MessageType> <Param0>general message</Param0> <Param1><html><head>test</head><body>Testhtml</body></html></Param1> </AmigoRequest>
:
확인이는 XML 내가 구문 분석있어 메시지입니다. 나는 다음과 같은 방법으로 메시지를 추출하려고 시도했다.
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을 반환하기 때문에 항상 null 값을 반환합니다. 나는 result.item (0) .getFirstChild(). hasChildNodes()를 시도 할 때 메시지에 태그가 있기 때문에 true를 반환합니다.
어떻게 문자열에서 Param0의 <html><head>test</head><body>Testhtml</body></html>
이라는 html 메시지를 추출 할 수 있습니까?
저는 Android sdk 1.5 (거의 거의 자바)와 DOM Parser를 사용하고 있습니다.
시간과 답변을 보내 주셔서 감사합니다.
Antek
당신은 다음과 같이 PARAM1의 내용이 걸릴 수
에 API 레벨을 변경해야 XPath는이 옵션하는지 간단한 변경을 함께했다? 그렇다면 나는 당신을 도울 수 있습니다. 그리고 나는 결코 물어 보지 않는 andriod를 사용하지 않았습니다. – ChadNC
XPath는 지원되지 않지만 DOM4J와 Jaxen을 사용하여 Android에 대한 해결책을 찾을 수있었습니다. –