Bu yüzden bir XML dosyasını XPath ile ayrıştırmam gerekiyor. Tüm iyi çalışır, ancak bir kereden fazla bir etiketim varsa, kodum etiket içindeki tüm aynı etiketlerin tüm alt etiketlerini görüntüler. Örneğin : iXPath Ayrıştırıcı java yedeklemesi
<a>
<b></b>
</a>
<c></c>
<a>
<b></b>
</a>
çıkışı olacaktır vardır:
public void parseFileXPath() throws ParserConfigurationException, IOException, SAXException, XPathExpressionException {
DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
Document doc = documentBuilder.parse(file);
doc.getDocumentElement().normalize();
XPathFactory factory = XPathFactory.newInstance();
XPath xpath = factory.newXPath();
String expression;
Node node;
NodeList nodeList;
expression="/*";
node = (Node) xpath.evaluate(expression,doc, XPathConstants.NODE);
//System.out.println(node.getNodeName());
expression="/frogans-fsdl/*";
nodeList = (NodeList) xpath.evaluate(expression,doc, XPathConstants.NODESET);
NodeList nodeList1;
for (int i = 0; i < nodeList.getLength(); i++) {
String aTag = nodeList.item(i).getNodeName();
System.out.println(aTag);
expression="/frogans-fsdl/"+aTag+"/*";
nodeList1 = (NodeList) xpath.evaluate(expression,doc,XPathConstants.NODESET);
for (int j = 0; j < nodeList1.getLength(); j++) {
System.out.println("\t"+nodeList1.item(j).getNodeName());
//TODO
//Display what's inside each tag
}
expression="";
}
}
Herhangi bir yardım edin:
a
b
b
c
a
b
b
benim kod böyle?
Çok teşekkür ederim! –