Extrahieren von Daten aus einem XML-Dokument, das Namespaces verwendet

8

Ich habe einige XML-Dateien, wo ich einige Informationen von ihnen verwenden möchte. Ich habe einen Code geschrieben, der diese Dateien liest und dann nach bestimmten Bedingungen sucht.

Das Problem ist, dass diese XML-Datei mit

beginnt %Vor%

und Perl konnte sie nicht lesen (zumindest in meinem Code!). Aber wenn ich diese Zeilen in der ersten Zeile von XML file anfüge

%Vor%

funktioniert sehr gut.

Einige Zeilen aus meiner XML-Datei test.xml :

%Vor%

und der Perl-Code zum Lesen der XML-Datei lautet:

%Vor%     
Royeh 27.10.2015, 14:31
quelle

2 Antworten

11

Der Wurzelknoten dieses Dokuments ist ein Element mit dem Namen SquishReport im Namespace http://www.froglogic.com/XML2 . Zusammenfassend können wir sagen, dass der Wurzelknoten ein

ist %Vor%


Wenn in einem XPath SquishReport (im Gegensatz zu prefix:SquishReport ) verwendet wird, versucht dies, ein Element mit dem Namen SquishReport im NULL-Namespace abzugleichen. Zusammenfassend können wir sagen, dass es versucht, ein

zu finden %Vor%


Um den Namespace anzugeben, verwendet man Präfixe, die in einem Kontext definiert sind folgt:

%Vor%


Hinweis: Das im XPath verwendete Präfix hat keine Beziehung zu den im XML-Dokument verwendeten Präfixen (falls vorhanden). Es wird erwartet, dass Sie den Namespace kennen, in dem sich die Elemente befinden, nach denen Sie suchen, aber nicht die Präfixe, die von einem bestimmten Dokument verwendet werden.

    
ikegami 27.10.2015, 14:35
quelle
0

Perl hat so viele ausgezeichnete XML-Tools - Danke an alle Modulentwickler und libxml2 , XML scheint fast einfach zu sein. Eines dieser Tools ist XML::Dataset - ein Convenience- "Scaffolding" -Modul, das auf XML::LibXML aufbaut und ein " profile "Markup-Sprache zum Abrufen von Daten aus XML-Quellen ( NB: Das Profil-Markup ist empfindlich für Leerzeichen und Zeilenenden).

z. B.:

%Vor%

Squish.xml :

%Vor%

Ausgabe:

%Vor%     
G. Cito 27.10.2015 16:22
quelle

Tags und Links