Ich habe eine XML-Datei, die ich parsen muss. Ich habe keine Kontrolle über das Format der Datei und kann es nicht ändern.
Die Datei verwendet ein Präfix (nennen wir es a
), definiert jedoch keinen Namespace für dieses Präfix irgendwo. Es scheint, dass ich xpath
nicht verwenden kann, um Knoten mit dem a
Namespace abzufragen.
Hier ist der Inhalt des XML-Dokuments
stuff0
stuff1
stuff2
stuff3
stuff4
stuff5
stuff6
stuff7
stuff8
stuff9
Ich verwende Nokogiri, um das Dokument abzufragen:
doc = Nokogiri::XML(open('text.xml'))
things = doc.xpath('//a:thing')
Die Abfrage schlägt fehl und gibt den folgenden Fehler zurück:
Nokogiri::XML::XPath::SyntaxError: Undefinierter Namensraum-Präfix: //a:thing
Aus meiner Recherche habe ich herausgefunden, dass ich den Namespace für das Präfix in der xpath
-Methode angeben könnte:
things = doc.xpath('//a:thing', a: 'niemand weiß')
Dies liefert ein leeres Array zurück.
Was wäre der beste Weg für mich, die benötigten Knoten zu erhalten?