Java解析雅虎温度只有XML

时间:2015-04-13 17:09:30

标签: java xml dom

我有以下XML:

<yweather:condition text="Fair" code="34" temp="21">

和Java代码:

NodeList titleList = e.getElementsByTagName("yweather");
Element titleElem = (Element) titleList.item(0);
Node titleNode = titleElem.getChildNodes().item(0);

我能够读取其他节点,但不能读取具有属性的节点。如何获得“temp”属性?

2 个答案:

答案 0 :(得分:2)

天气节点称为&#34;条件&#34;不是&#34; yweather&#34;,yweather是命名空间前缀。

这样:

NodeList titleList = e.getElementsByTagName("condition");

如果没有帮助,你有两个选择,用&#34; *&#34;获取所有元素。并过滤tagName等于&#34; condition&#34;)的那个,或者你需要检查前缀的命名空间是什么&#34; yweather&#34; (在xml文档的顶部某处),并使用它。例如,如果

xmlns:yweather="http://www.yahoo"

然后使用:

NodeList titleList = e.getElementsByTagNameNS("http://www.yahoo","condition");

答案 1 :(得分:0)

你可以:

File file = new File(//yourXMLfilenameHere//);
String xmlString = StringUtils.readFileToString(file);

String[] xmlTags = StringUtils.substringsBetween(xmlString,"<", ">");
int tagCount = xmlTags.length();
String[][] thisTag = new String[tagCount][4]; 

for (int ndx = 0; ndx < tagCount; ndx++) 
    thisTag[ndx][] = xmlTags[ndx].split(" ");

然后根据你的格式,thisTag [ndx] [4] .equals(“temp = \”21 \“”);