XSL Version: 2.0
Parser: Saxon 9
Hallo,
Ich habe ein Problem bei der Zusammenführung zweier (oder mehrerer) Xml-Dokumente über ein XSLT Script.
Bisher hatten beide Xml-Dokumente keine Namespaces und keine Prefixe.
Beide Dokumente konnte ich einfach mit (in $xmlDirectory und @href steht der Pfad drin)
einlesen, die zusammenpassenden Elemente suchen und in ein neues Dokument ausgeben.
Jetzt wurde in einem der Dokumente ein Standard-Namespace eingeführt, und meine Transformation geht jetzt nicht mehr. Fehler gibt es keine, aber es werden nur noch die Daten von Xml1 ausgegeben, die dazugehörigen Daten aus Xml2 (da wo das Standard-Namespace jetzt drin ist) werden nicht mehr gefunden.
Ich habe schon probiert an den copy-of Befehl das copy-namespaces-Attribut anzuhängen mit Wert "no", leider hat das nichts gebracht.
Ich kann das Standardnamespace ja aber auch nicht in die Xsl übernehmen weil die erste Xml-Datei es nicht hat (wenn ich das mache bekomme ich lauter Fehler bei Transformationsaufruf).
Kriegt man das irgendwie gebacken?
In diesem Zusammenhang verwende ich das Xml mit Standard-Namespace:
Kann mir jemand weiterhelfen? Beim googlen bin ich leider nicht weitergerkommen.
gruß & danke
sth_Weird
Parser: Saxon 9
Hallo,
Ich habe ein Problem bei der Zusammenführung zweier (oder mehrerer) Xml-Dokumente über ein XSLT Script.
Bisher hatten beide Xml-Dokumente keine Namespaces und keine Prefixe.
Beide Dokumente konnte ich einfach mit (in $xmlDirectory und @href steht der Pfad drin)
HTML Code:
xsl:copy-of select = "document(concat($xmlDirectory, @href))"
Jetzt wurde in einem der Dokumente ein Standard-Namespace eingeführt, und meine Transformation geht jetzt nicht mehr. Fehler gibt es keine, aber es werden nur noch die Daten von Xml1 ausgegeben, die dazugehörigen Daten aus Xml2 (da wo das Standard-Namespace jetzt drin ist) werden nicht mehr gefunden.
Ich habe schon probiert an den copy-of Befehl das copy-namespaces-Attribut anzuhängen mit Wert "no", leider hat das nichts gebracht.
Ich kann das Standardnamespace ja aber auch nicht in die Xsl übernehmen weil die erste Xml-Datei es nicht hat (wenn ich das mache bekomme ich lauter Fehler bei Transformationsaufruf).
Kriegt man das irgendwie gebacken?
In diesem Zusammenhang verwende ich das Xml mit Standard-Namespace:
HTML Code:
<!-- hier wird das erste Xml Dokument wird geladen, Code hab ich weggelassen da der Teil geht --> <!-- nun lade ich nacheinander die Dateien mit dem Standard-Namespace --> <xsl:for-each select = "$Docs/Data"> <xsl:variable name = "Doc"> <xsl:copy-of select = "document(concat($xmlDirectory, @href))" copy-namespaces = "no" /> </xsl:variable> <!-- weiter: die Daten jedes Docs mit den aus dem ersten Xml-Dokument verknüpfen...hab ich der Einfachheit halber weggelassen da hier nicht relevant --> ...
gruß & danke
sth_Weird
Comment