[英]Read XML file using DOM Java
下面是我的 XML 文件,
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<SampleDTO>
<mInfo>
<aName>FMgr</aName>
</mInfo>
<Result xsi:type="ResultDTO">
<pname>Module1</pname>
<proname>com.test.Manager</proname>
<caseResult xsi:type="ResultDTO">
<failure>0</failure>
<aResult xsi:type="ARDTO">
<aName>AAAA</aName>
</aResult>
<aResult xsi:type="ARDTO">
<aName>BBBB</aName>
</aResult>
</caseResult>
</Result>
<Result xsi:type="ResultDTO">
<pname>Module2</pname>
<proname>com.test.Manager</proname>
<caseResult xsi:type="ResultDTO">
<failure>0</failure>
<aResult xsi:type="ARDTO">
<aName>CCCC</aName>
</aResult>
<aResult xsi:type="ARDTO">
<aName>DDDD</aName>
</aResult>
</caseResult>
</Result>
</SampleDTO>
Java代碼:
File file = new File("...//filepath");
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(file);
doc.getDocumentElement().normalize();
NodeList nodeList = doc.getElementsByTagName("caseResult");
for (int itr = 0; itr < nodeList.getLength(); itr++)
{
Node node = nodeList.item(itr);
if (node.getNodeType() == Node.ELEMENT_NODE)
{
Element eElement = (Element) node;
System.out.print(eElement.getElementsByTagName("aName").item(0).getTextContent());
}
}
我可以通過在 java 中使用 DOM 來獲取 caseResult 的列表。 我想同時獲得caseResult
和<aName>FMgr</aName>
和<proname>com.test.Manager</proname>
。 合而為一。
嘗試以下解決方案
NodeList resultNodeList = document.getElementsByTagName("Result");
for (int i = 0; i < resultNodeList.getLength(); i++) {
Element resultNodeElement = (Element) resultNodeList.item(i);
String proname = resultNodeElement.getElementsByTagName("proname").item(0).getTextContent();
Element caseResultElement = (Element) resultNodeElement.getElementsByTagName("caseResult").item(0);
NodeList aResultNodeList = caseResultElement.getElementsByTagName("aResult");
for (int y = 0; y < aResultNodeList.getLength(); y++) {
Element aResultElement = (Element) aResultNodeList.item(i);
String aName = aResultElement.getElementsByTagName("aName").item(0).getTextContent();
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.