Ich habe Standard-Konfigurationselemente in einem XML-Dokument wie folgt:Wie können Elemente zwischen zwei Dokumenten mit XSLT 2.0 zusammengeführt werden?
<ProgramConfig>
<Fragment xml:lang="en" name="TargetSector">fragment/target_sector.xdp</Fragment>
<Fragment xml:lang="fr" name="TargetSector">fragment/target_sector_fr.xdp</Fragment>
<MasterTemplate xml:lang="en">master/default_en.xdp</MasterTemplate>
<MasterTemplate xml:lang="fr">master/default_fr.xdp</MasterTemplate>
</ProgramConfig>
Spezifische Programme die Standardkonfiguration außer Kraft setzen können, zum Beispiel:
<ProgramConfig>
<Fragment xml:lang="en" name="TargetSector">fragment/1-5ABQ/target_sector.xdp</Fragment>
<MasterTemplate xml:lang="fr">master/default_fr_1-5ABQ.xdp</MasterTemplate>
</ProgramConfig>
Ich brauche die XML-Dokumente zusammenführen, so dass die Ausgabe wird:
Wenn das programmspezifische XML ein Element mit demselben Namen und übereinstimmenden Attributen wie das Standard-XML hat, t Wenn es den Wert im Ausgabedokument ersetzen soll.
Die XML ist ziemlich flach - es ist immer eine Reihe von Elementen unter dem Stammverzeichnis ProgramConfig mit keinen weiteren untergeordneten Elementen. Jedes Element definiert einen Dateisystempfad zu einem Asset.
Gibt es eine Möglichkeit, dies mit XSLT zu tun. Ich habe versucht, die Dokumentfunktion zu verwenden, aber ich bin nicht sicher, wie man mit einem Element und allen Attributen übereinstimmt.
Erstaunlich. Vielen Dank. Eine Frage - was bedeutet das 'as' Attribut von' node() * '? Ich war mir nicht sicher, wie es um Attribute geht, ich dachte, es würde nur mit Elementen übereinstimmen. – dave
Gemäß https://www.w3.org/TR/xpath20/#id-sequencetype-syntax mit Sequenztypen, wie sie im 'as' Attribut verwendet werden, bedeutet" Any Art Test "' node() 'jede Art von Knoten und Attribute sind Knoten im Datenmodell. Es ist anders in einem XSLT-Muster, wo https://www.w3.org/TR/xslt20/#pattern-examples definiert "' node() 'entspricht einem anderen Knoten als einem Attributknoten, Namespace-Knoten oder Dokument-Knoten". –