Hallo Leute,
ich habe ein kleines Objektrepository in einem XML-File gespeichert.
Bei jedem Zugriff auf das Repository muss das File geöffnet werden.
Allerdings möchte ich nur einmal parsen. Das Lesen des Files funktioniert soweit ganz gut, allerdings kann ich das Dokument nicht speichern, sondern immer nur einen Xpath ausdruck auswerten. Ich möchte aber die Auswertung zu einem beliebigen Zeitpunkt später ausführen und nicht immer die Datei Parsen müssen.
Ergo soll das Dokument gespeichert werden.
Gruß Dennis
ich habe ein kleines Objektrepository in einem XML-File gespeichert.
Bei jedem Zugriff auf das Repository muss das File geöffnet werden.
Allerdings möchte ich nur einmal parsen. Das Lesen des Files funktioniert soweit ganz gut, allerdings kann ich das Dokument nicht speichern, sondern immer nur einen Xpath ausdruck auswerten. Ich möchte aber die Auswertung zu einem beliebigen Zeitpunkt später ausführen und nicht immer die Datei Parsen müssen.
Ergo soll das Dokument gespeichert werden.
Gruß Dennis
Code:
Set<String> items = new HashSet<String>();
DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance();
domFactory.setNamespaceAware(true); // never forget this!
DocumentBuilder builder;
File objects = new File(filelocation);
try {
builder = domFactory.newDocumentBuilder();
Document doc = builder.parse(objects);
XPathFactory factory = XPathFactory.newInstance();
XPath xpath = factory.newXPath();
XPathExpression expr = xpath.compile(normalizedString);
Object result = expr.evaluate(doc, XPathConstants.NODESET);
NodeList nodes = (NodeList)result;
for (int i = 0; i < nodes.getLength(); i++) {
items.add(nodes.item(i).getNodeValue());
}
}
Code:
<?xml version="1.0" encoding="iso-8859-1"?>
<labels
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
noNamespaceSchemaLocation="objectFieldsSurfaceMapping.xsd">
<label mandatory="true" type="text" id="Miete zzgl. NK">
<name>priceid_2</name>
<id>priceid_2</id>
<defaultValue>750</defaultValue>
</label>
</labels>