2016-06-06 5 views
0

Ich habe die folgenden xml.Ich muss den Wert von bcc, cc, Haupt, Thema aus dem oben genannten XML.Xml Parsing mit Xpath - Xpaths oder DOM

Wie kann ich das analysieren?

<?xml version="1.0" encoding="UTF-8"?> 
<abc> 
    <pqr ref1="8340403366" ref2="0000000228754072" ref3="3200051014"> 
    </pqr> 
    <errors> 
     <subject>Error is there</subject> 
     <mailto bcc="[email protected]" cc="[email protected]"main="[email protected]"/> 
     <text mnofield="000020"/> 
    </errors> 
</abc> 
+1

haben Sie versucht, es mit DOM oder XPath zu lesen? Wenn nicht, gehen Sie zu Ihrem Computer und versuchen Sie es ... es wird funktionieren, ich bin mir ziemlich sicher, dass es wird ... –

+0

Die XML ist falsch formatiert, sollte ein Leerzeichen vor 'main =' und '/>' in der 'mailto' Element. Sind Ihre XML-Dateien wirklich so oder sind sie nur Tippfehler in der Frage? – Arjan

Antwort

0

Wenn Sie versuchen, eine XML-Datei, so etwas zu analysieren, könnte Ihnen helfen:

DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); 
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder(); 

Document doc = dBuilder.parse(file); 
XPath xPath = XPathFactory.newInstance().newXPath(); 

String expression = "//pqr/@ref1"; // This line defines the element or attribute that you want to retrieve 
Node node = (Node) xPath.compile(expression).evaluate(doc, XPathConstants.NODE); 
String nodeValue = node.getTextContent(); 

Wenn Ihre XML-Datei hat sich wiederholende Elemente und Attribute Sie können Ihre Werte in einem NodeList speichern möchten . Dafür könnten Sie:

NodeList nodeList = (NodeList) xPath.compile(expression).evaluate(doc, XPathConstants.NODESET); 

Sie sollten diese Links finden Sie unter:

http://www.roseindia.net/tutorials/xPath/index.shtml

https://msdn.microsoft.com/en-us/library/ms256086(v=vs.110).aspx