【发布时间】:2020-06-15 19:26:25
【问题描述】:
我正在尝试使用以下数据来解析和处理日期值。
<Data>
<Data1 Study="R1979" MetaDataVersionOID="6713">
<Data2 Subject="4100">
<SData Event="SCN" key="WK1[1]">
<FormData Form="PEMD" FormKey="1">
<ItemData Item="PM" Value="1"/>
<ItemData Item="PE" Value="1"/>
<ItemData Item="DATE" Value="2020-01-01"/>
</FormData>
</SData>
</Data2>
</Data1>
<Data1 Study="R1979" MetaDataVersionOID="6713">
<Data2 Subject="4100">
<SData Event="WK1" key="WK1[1]">
<FormData Form="PEMD" Formkey="1">
<ItemData Item="PM" Value="1"/>
<ItemData Item="PE" Value="1"/>
<ItemData Item="DATE" Value="2019-12-18"/>
</FormData>
</SData>
</Data2>
</Data1>
</Data>
使用此代码节点值为null 登陆日期为空:
strXPath =/Data/Data1/Data2[@Subject='4100']/SData/FormData[@Form='PEMD']/ItemData[@Item='DATE']
NodeList nodes = (NodeList) XPathUtil.getXPath().evaluate(strXPath, docODM, XPathConstants.NODESET);
for (int i = 0; i < nodes.getLength(); i++) {
logger.info("node " + i);
Node nodeElement = nodes.item(i);
logger.info("node value: " + nodeElement.getNodeValue());
String date = (String)XPathUtil.getXPath().evaluate("/ItemData/@Value", nodeElement, XPathConstants.STRING);
logger.info("date: " + date);
}
第一个 strXPath 产生这个:
Element='<ItemData Item="DATE" Value="2020-01-01"/>'
Element='<ItemData Item="DATE" Value="2019-12-18"/>'
使用此方法一次检索一个元素的日期值应该可以:
/ItemData/@Value
在测试器中也是如此。
Attribute='Value=2020-01-01'
但上面的节点值为空,日期为空,不知道为什么。
【问题讨论】: