Leer el camino#
X4 utiliza un lenguaje se selector restringido en lugar de todo XPath. Compruebe su juego libraries/diff.xsd; la aceptación por un editor XPath no prueba la compatibilidad con X4.
| Forma | Significado |
|---|---|
/items/item |
elementos hijos de la raíz de los elementos |
[@id='a'] |
Filtro de atributos |
/@enabled |
El atributo en sí |
//item[@id='a'] |
Cualquier profundidad; comprobar la singularidad |
Aportaciones de aprendizaje#
Estos son datos inventados, no un archivo X4:
<items>
<item id="a" enabled="false" />
<item id="b" />
</items>Parche independiente:
<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>Resultado esperado#
<items>
<item id="a" enabled="true" label="demo" />
<item id="c" />
</items>replace cambia un atributo existente, add type="@label" añade uno, y remove Suprime b. La final add inserta c dentro de los elementos. Esta es una transformación esperada, no una salida de registro o una prueba de juego ejecutada.
Errores comunes#
Compruebe una coincidencia para cada operación. Reemplazar un elemento entero también elimina a sus hijos antiguos. Para agregar un atributo, seleccione el elemento a través de sel y nombre el atributo a través de type.
No confíes en contains(), Unión | o expresiones XPath completas arbitrarias. Investigar primero las coincidencias faltantes: silent suprime un informe sin fijar la ruta. un verdadero parche de barco y compatibilidad.