【发布时间】:2020-08-02 20:55:42
【问题描述】:
我有大型 xml 文件,我需要在其中找到匹配的合同编号,然后我需要读取父节点的所有剩余元素,包括子节点。我是一名测试人员,正在努力寻找可行的解决方案。
我的原始文件非常大且无法在此处共享的示例 XML 文件。
我的要求是搜索合同并根据该文件读取整个值。我需要使用这些值与应用程序进行比较 '''
<FILE>
<Document RECORD="1">
<Contract>701</Contract>
<Contact></Contact>
<Plan></Plan-Series>
<Company-Cd>002</Company>
<Child1>
<ele1>dds</ele1>
<ele2>dds</ele2>
</Child1>
<Child2>
<ele1>dds</ele1>
<ele2>dds</ele2>
</Child2>
<Transfers OCCURRENCE="1">
<ele1>dds</ele1>
<ele2>dds</ele2>
</Transfers>
<Transfers OCCURRENCE="2">
<ele1>dds</ele1>
<ele2>dds</ele2>
</Transfers>
<Transfers OCCURRENCE="3">
<ele1>dds</ele1>
<ele2>dds</ele2>
</Transfers>
</Document
<Document RECORD="2">
<Contract>702</Contract>
<Contact></Contact>
<Plan></Plan-Series>
<Company-Cd>002</Company>
<Child1>
<ele1>dds</ele1>
<ele2>dds</ele2>
</Child1>
<Child2>
<ele1>dds</ele1>
<ele2>dds</ele2>
</Child2>
<Transfers OCCURRENCE="1">
<ele1>dds</ele1>
<ele2>dds</ele2>
</Transfers>
<Transfers OCCURRENCE="2">
<ele1>dds</ele1>
<ele2>dds</ele2>
</Transfers>
<Transfers OCCURRENCE="3">
<ele1>dds</ele1>
<ele2>dds</ele2>
</Transfers>
</Document
</FILE>
''' 由于文本元素或其他原因,它不会收缩 id 节点
'''
File fXmlFile = new File(inputFile);
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(fXmlFile);
doc.getDocumentElement().normalize();
nList = doc.getElementsByTagName("Document");
for (int temp = 0; temp < nList.getLength(); temp++) {
Node node = nList.item(temp);
if (node.getNodeType() == Node.ELEMENT_NODE) {
Element element = (Element) node;
if (element.getNodeName()=="Contract-Id") {
String nodetext=element.getTextContent();
if(nodetext=="77530006") {
System.out.println("got it");
}
}
}
}
'''
【问题讨论】:
-
请缩进您的代码。目前无法读取。并详细解释你的代码有什么问题。阅读How to create a Minimal, Reproducible Example。
标签: java xml web-services