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
funktioniert sehr gut.
Einige Zeilen aus meiner XML-Datei test.xml
:
und der Perl-Code zum Lesen der XML-Datei lautet:
%Vor% 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
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
Um den Namespace anzugeben, verwendet man Präfixe, die in einem Kontext definiert sind folgt:
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.
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
:
Ausgabe:
%Vor%Tags und Links xml perl xml-libxml