У меня есть большой 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");
}
}
}
}
'' '