angelikamorgan
Mitglied
Hallo Zusammen,
ich möchte gerne eine Bean (POJO) mit den Werten aus dem XML-File befüllen.
Mein Problem besteh darin, per XPATH an die einzelnen Elemente ran zu kommen.
Die Folgende Klasse kann zum Beispiel den Wert aus dem <c>(c)</c> Tag auslesen.
Was muss ich machen, um alle Werte der XML Datei zu erhalten ?
Habe mit diesen Möglichkeiten gespielt. Finde jedoch bis jetzt keine Lösung :/
Bin für jede Hilfe dankbar!
ich möchte gerne eine Bean (POJO) mit den Werten aus dem XML-File befüllen.
PHP:
<?xml version="1.0" encoding="UTF-8"?>
<a>
<b>
<c>(c)</c>
<d>
<e>
<g>(g1)</g>
<h>(h1)</h>
</e>
<f>
<g>(g2)</g>
<h>(h2)</h>
</f>
</d>
<i>(i)</i>
<j>(j)</j>
<k>(k)</k>
<l>(l)</l>
<m>(m)</m>
<n>(n)</n>
</b>
</a>
HTML:
MyBean myBean = new MyBean();
myBean.setC(Wert aus dem <c></c> Tag);
myBean.setK(Wert aus dem <k></k> Tag);
Mein Problem besteh darin, per XPATH an die einzelnen Elemente ran zu kommen.
Die Folgende Klasse kann zum Beispiel den Wert aus dem <c>(c)</c> Tag auslesen.
HTML:
import java.io.IOException;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.xpath.XPath;
import javax.xml.xpath.XPathConstants;
import javax.xml.xpath.XPathExpression;
import javax.xml.xpath.XPathExpressionException;
import javax.xml.xpath.XPathFactory;
import org.w3c.dom.Document;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
public class XPATHCoin {
public static void main(String[] args) throws ParserConfigurationException, SAXException, IOException, XPathExpressionException {
DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance();
domFactory.setNamespaceAware(true);
DocumentBuilder builder = domFactory.newDocumentBuilder();
Document doc = builder.parse("myXMLFile.xml");
XPathFactory factory = XPathFactory.newInstance();
XPath xpath = factory.newXPath();
XPathExpression expr = xpath.compile("//a/b/c/text()");
Object result = expr.evaluate(doc, XPathConstants.NODESET);
NodeList nodes = (NodeList) result;
for (int i = 0; i < nodes.getLength(); i++) {
System.out.println(nodes.item(i).getNodeValue());;
}
}
}
HTML:
XPathExpression expr = xpath.compile("//a/*");
XPathExpression expr = xpath.compile("//a/node()");
Habe mit diesen Möglichkeiten gespielt. Finde jedoch bis jetzt keine Lösung :/
Bin für jede Hilfe dankbar!
Zuletzt bearbeitet: