Können wir eine XML-Datei in eine andere XML-Datei importieren?
Ich meine, gibt es ein Import-Tag in XML, das den XML-Pfad als Parameter verwendet und XML importiert (für das der Pfad angegeben ist).
Sie deklarieren die Entität wie folgt:
<!ENTITY otherFile SYSTEM "otherFile.xml">
Dann verweisen Sie darauf wie folgt:
&otherFile;
Ein vollständiges Beispiel:
<?xml version="1.0" standalone="no" ?>
<!DOCTYPE doc [
<!ENTITY otherFile SYSTEM "otherFile.xml">
]>
<doc>
<foo>
<bar>&otherFile;</bar>
</foo>
</doc>
Wenn der XML-Parser die Datei liest, erweitert er die Entitätsreferenz und schließt die referenzierte XML-Datei als Teil des Inhalts ein.
Wenn die "otherFile.xml" enthält: <baz>this is my content</baz>
Dann würde das XML von einem XML-Parser ausgewertet und "gesehen" als:
<?xml version="1.0" standalone="no" ?>
<doc>
<foo>
<bar><baz>this is my content</baz></bar>
</foo>
</doc>
Einige Referenzen, die hilfreich sein könnten:
XMLResolver
Eigenschaft festgelegt ist. Wenn die XMLResolver-Eigenschaft für Ihr XMLDocument-Objekt nicht festgelegt ist, werden möglicherweise keine externen Ressourcen geladen. msdn.microsoft.com/en-us/library/5fcwybb2.aspxDie anderen Antworten beziehen sich auf die beiden gängigsten Ansätze, Xinclude und XML, externe Entitäten. Microsoft hat eine wirklich gute Beschreibung, warum man Xinclude bevorzugen sollte, sowie einige Beispielimplementierungen. Ich habe den Vergleich unten zitiert:
Per http://msdn.microsoft.com/en-us/library/aa302291.aspx
Eine weitere gute Website mit einer Vielzahl von Beispielimplementierungen ist https://www.xml.com/pub/a/2002/07/31/xinclude.html . Im Folgenden finden Sie ein Beispiel für einen allgemeinen Anwendungsfall auf ihrer Website:
quelle
Diese Funktion wird als XML-Einschlüsse (XInclude) bezeichnet . Einige Beispiele:
quelle
Die Lösung von Mads Hansen ist gut, aber um die externe Datei in .NET 4 erfolgreich lesen zu können, hat es einige Zeit gedauert, die Hinweise in den Kommentaren zu Resolvern, ProhibitDTD usw. zu verwenden.
So wird's gemacht:
logfile.xml:
events.txt:
quelle