2011-06-13 35 views
0
url = new URL(url_str); 
HttpURLConnection connection = (HttpURLConnection) url.openConnection(); 
connection.setRequestMethod("GET"); 
connection.connect(); 
InputStream stream = connection.getInputStream(); 
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); 
DocumentBuilder db = dbf.newDocumentBuilder(); 
Document doc = db.parse(stream); 
doc.getDocumentElement().normalize(); 
Node node = doc.getElementsByTagName("baseName").item(0); 
Log.d(TAG,">>>>"+node.getNodeValue()); 

当我在Web浏览器上尝试“url_str”时,它给了我下面的XML。如何解析从GET返回的XML(在Android中)

<files> 
<file> 
<fileId>441190</fileId> 
<license>4</license> 
<path>images</path> 
<originalSource> 
http://www.flickr.com/photos/stevendepolo/5165129565/sizes/m/ 
</originalSource> 
<owner>Steven Depolo</owner> 
<baseName>photo_5165129565_0ca9b101b0_t.jpg</baseName> 
</file> 
</files> 

但是对于我的“node.getNodeValue()”输出,它返回null。但我需要获取baseName标记之间的字符串。

回答

1

尝试node.getTextContent();而不是node.getNodeValue(),这解决了我与节点值有关的大多数问题。有时没有设置节点值,而是将值设置为文本内容。

希望这会有所帮助。

0

您是否检查过其他字段?它是否会为它们返回值? 请在你的节点上打电话getNodeType(),它返回什么? 请考虑使用XPath。