Ich verwende derzeit JAXB zum Parsen von XML-Dateien. Ich habe die benötigten Klassen über eine xsd-Datei generiert. Die XML-Dateien, die ich erhalte, enthalten jedoch nicht alle Knoten, die in den generierten Klassen deklariert sind. Im Folgenden ist ein Beispiel für meine xml-Datei der Struktur:Umgang mit fehlenden Knoten mit JAXB
<root>
<firstChild>12/12/2012</firstChild>
<secondChild>
<firstGrandChild>
<Id>
</name>
<characteristics>Description</characteristics>
<code>12345</code>
</Id>
</firstGrandChild>
</secondChild>
</root>
ich mit den folgenden beiden Fällen konfrontiert werde:
- Der Knoten
<name>
in den generierten Klassen vorhanden ist, aber nicht in den XML-Dateien - Der Knoten hat keinen Wert.
In beiden Fällen wird der Wert auf null gesetzt. Ich möchte unterscheiden können, wenn der Knoten in der XML-Datei fehlt und wenn es vorhanden ist, aber einen Nullwert hat. Trotz meiner Recherchen habe ich keinen Weg gefunden, dies zu tun. Jede Hilfe ist mehr als willkommen
Vielen Dank im Voraus für Ihre Zeit und helfen
Grüße
xsi: nil ist dein Freund! mehr hier lesen http://stackoverflow.com/questions/774192/what-is-the-correct-way-to-represent-null-xml-elements – MariuszS
Dank für Ihre Antwort danken! So wie ich es verstanden habe, wird der Wert des Knotens auf "" statt auf Null gesetzt. Das Problem, mit dem ich konfrontiert bin, ist, dass für JAXB ein leerer Knoten und ein nicht existenter Knoten in der XML-Datei auf die gleiche Weise behandelt werden. So kann ich nicht wissen, ob ich den Knoten in der Datei erhalten habe oder ich tat, und sein Wert war null – user2249868
Das folgende Beispiel wird mit 'xsi: nil' helfen: http://blog.bdoughan.com/2012/04/binding -to-json-xml-handling-null.html –