我有以下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”属性?
答案 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 \“”);