Pfad lesen#

X4 verwendet eine eingeschränkte Auswahlsprache anstatt alle XPath. Überprüfen Sie Ihre Spiel libraries/diff.xsd; Die Annahme durch einen XPath-Editor beweist keine X4-Kompatibilität.

Vordruck Bedeutung
/items/item Element Kinder der Elementwurzel
[@id='a'] Filter für die Abflachung
/@enabled Das Attribut selbst
//item[@id='a'] Jede Tiefe; überprüfen Sie die Einzigartigkeit

Lerneingabe#

Dies sind erfundene Daten, keine X4-Datei:

XML
<items>
  <item id="a" enabled="false" />
  <item id="b" />
</items>

Unabhängiger Patch:

XML
<diff>
  <replace sel="/items/item[@id='a']/@enabled">true</replace>
  <add sel="/items/item[@id='a']" type="@label">demo</add>
  <remove sel="/items/item[@id='b']" />
  <add sel="/items">
    <item id="c" />
  </add>
</diff>

Erwartetes Ergebnis#

XML
<items>
  <item id="a" enabled="true" label="demo" />
  <item id="c" />
</items>

replace ändert ein bestehendes Attribut, add type="@label" fügt ein, und remove löscht b. Das letzte add fügt c in Elemente ein. Dies ist eine erwartete Transformation, nicht Log-Ausgabe oder ein ausgeführter Spieltest.

Häufige Fehler#

Überprüfen Sie für jede Operation einen Treffer. Das Ersetzen eines ganzen Elements entfernt auch seine alten Kinder. Um ein Attribut hinzuzufügen, wählen Sie das Element durch sel und das Attribut durch type.

Verlass dich nicht auf contains(), gewerkschaft | oder beliebige vollständige XPath-Ausdrücke. Erforschen Sie zuerst fehlende Übereinstimmungen: silent unterdrückt einen Bericht ohne den Pfad zu fixieren. ein echtes Schiff Patch und Kompatibilität.