【发布时间】:2016-10-31 22:03:52
【问题描述】:
这是我的部分 xml 文件
<IOStatusSummary>
<iostatus_interval_value>
<count>0</count>
<iostatusvalue datainterval="2016-01-16 15:45:30">1.0</iostatusvalue>
<iostatusvalue datainterval="2016-01-16 19:47:29">0.0</iostatusvalue>
<iostatusvalue datainterval="2016-05-16 13:01:07">1.0</iostatusvalue>
<iostatusvalue datainterval="2016-05-16 18:51:33">0.0</iostatusvalue>
<iostatusvalue datainterval="2016-05-27 16:45:50">1.0</iostatusvalue>
<iostatusvalue datainterval="2016-05-27 20:56:00">0.0</iostatusvalue>
<iostatusvalue datainterval="2016-06-10 10:21:28">1.0</iostatusvalue>
<iostatusvalue datainterval="2016-06-10 20:01:17">0.0</iostatusvalue>
</iostatus_interval_value>
</IOStatusSummary>
我想做的是
DocumentBuilder db1 = DocumentBuilder db1 = DocumentBuilderFactory.newInstance().newDocumentBuilder();
InputSource is1 = new InputSource();
is1.setCharacterStream(new StringReader(xmlResult));
Document doc1 = db1.parse(is1);
NodeList nList_interval=doc1.getElementsByTagName("iostatus_interval_value");
List on = new ArrayList();
List off = new ArrayList();
for (int =0; i < nList_interval.getLenght(); i ++ ){
Node currentItem2= nList_interval.item(iter);
Element element2 = (Element) currentItem2;
String iostatusvalue = element2.getElementsByTagName("iostatusvalue").item(i).getTextContent();
if(iostatusvalue.equals("1.0"))
{
on.add(element1.getAttribute("datainterval")));
}
if(iostatusvalue.equals("0.0"))
{
off.add("element1.getAttribute("datainterval"))");
}
}
然后我正在打印我期待的内容
on = { 2016-01-16 15:45:30" , 2016-05-16 13:01:07 , 2016-05-27 16:45:50,2016-06-10 10:21:28}
关闭 = { 2016-01-16 19:47:29, 2016-05-16 18:51:33, 2016-05-27 20:56:00, 2016-06-10 20:01:17 }
我的列表是空的,上面的 xml 不完整 xml 它是 xml 的一部分。
但我没有得到我所期望的,我认为我在某个地方犯了逻辑错误,因为我是新手。
感谢您阅读我的问题。
【问题讨论】:
-
你得到了什么?
-
您的 XML 无效。它以结束标签开始
-
那是我的打字错误
-
我得到两个列表都是空的。
-
@shreerambanne 您是否尝试过使用调试器来找出发生了什么?
标签: java xml parsing dom xml-parsing