estoy usando Instrucción xsl:stylesheet
Procesamiento en mi XML. ¿Hay alguna forma de seleccionar este PI usando XPath? Si es así, cómo ?¿Cuál es la expresión XPath para seleccionar una instrucción de procesamiento?
Respuesta
Utilice processing-instruction()
node-test.
En general, se puede seleccionar una instrucción de procesamiento usando la prueba de nodo processing-instruction()
.
Más específicamente, uno puede incluir como argumento el nombre (objetivo) del nodo PI deseado.
Uso:
/processing-instruction('xml-stylesheet')
Esto selecciona cualquier instrucción de procesamiento con el nombre xsl-stylesheet
que se define en el nivel global (es hermano del elemento superior).
Tenga en cuenta que xsl:stylesheet
es un objetivo PI no válido para un PI. Se utiliza un punto ':'
para delimitar un prefijo de espacio de nombres del nombre local; sin embargo, una instrucción de procesamiento objetivo no puede pertenecer a un espacio de nombre. De acuerdo con la W3c XPath Specification:
"Una instrucción de procesamiento tiene un nombre expandido: la parte local es el objetivo de la instrucción de procesamiento, el URI de espacio es nulo."
También de acuerdo con el documento del W3C: "Associating Style Sheets with XML documents 1.0", el objetivo de la PI que asocia una hoja de estilo a un documento XML debe ser:. "xml-stylesheet"
- no "xsl:stylesheet"
o "xsl-stylesheet"
Aquí es un ejemplo completo:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:template match="/">
<xsl:copy-of select="/processing-instruction('xml-stylesheet')"/>
</xsl:template>
</xsl:stylesheet>
Cuando se aplica esta transformación con los del siguiente documento XML:
<?xml-stylesheet type="text/xsl" href="test"?>
<Books>
<Book name="MyBook" />
</Books>
la expresión XPath se evalúa y el nodo de PI seleccionada se emite:
<?xml-stylesheet type="text/xsl" href="test"?>
veo que todavía estás hasta sus viejos trucos ... Eliminar y volver a publicar una respuesta a desprenderse de bajada votos es el abuso hacia arriba: cómo la gente decide evaluar las respuestas es su decisión, no la tuya. Por favor, absténgase de hacer esto de nuevo. – Shog9
¿'/ processing-instruction ('xml-stylesheet')' selecciona cosas con el nombre 'xsl-stylesheet'? Eso sería mágico! Tenga en cuenta 'xml' vs' xsl'. –
@MicheldeRuiter, sí, lo hace. Esto se define formalmente aquí (el tercer párrafo de la parte inferior): http://www.w3.org/TR/xpath/#node-tests –
Un sombrero de instrucción de procesamiento se dirigen dos partes y datos con la sintaxis:
<?target data?>
Si usa:
<xsl:value-of select="/processing-instruction('xml-stylesheet')" />
sólo devolverá la parte de datos, en el ejemplo de Dimitre Novatchev, devuelve:
type="text/xsl" href="test"
lo tanto, el valor de cadena de una instrucción de procesamiento es la parte de datos. Se evalúa la expresión de selección de <xsl:value-of
y el objeto resultante se convierte en una cadena, como una llamada implícita a la función string()
.
- 1. expresión XPath para seleccionar texto de enlace
- 2. ¿Qué es xpath para seleccionar un rango de nodos?
- 3. Confundir ¿Cuál debería ser mi Expresión Xpath?
- 4. XPath para seleccionar varias etiquetas
- 5. Expresión de XPath para seleccionar todos los nodos secundarios XML excepto una lista específica?
- 6. ¿Hay una expresión DRYer XPath para la unión?
- 7. ¿Cuál es la expresión regular para una URL como esta?
- 8. ¿Cuál es la diferencia de enunciado y expresión en Ruby?
- 9. XPath solución expresión para max predicado
- 10. validar una expresión xpath en Java
- 11. usando xpath para seleccionar elementos en jQuery?
- 12. ¿Cuál es la expresión regular de una palabra en español?
- 13. Xpath para seleccionar solo los nodos donde existen elementos secundarios?
- 14. PHP XPath seleccionar último elemento coincidente
- 15. expresión XPath para seleccionar todos los nodos con un atributo común
- 16. ¿Cómo seleccionar todos los nodos de hoja usando la expresión XPath?
- 17. SQL Seleccionar instrucción para calcular una columna promedio en ejecución
- 18. ¿Cuál es la expresión regular más eficiente?
- 19. No equivalente IN en la expresión XPath
- 20. ¿Cuál es el equivalente JSON.NET de XML's XPath, SelectNodes, SelectSingleNode?
- 21. Seleccionar primer resultado en XPath
- 22. ¿Cómo seleccionar dos atributos del mismo nodo con una expresión en XPath?
- 23. Haciendo que JAXB genere una instrucción de procesamiento XML
- 24. Propel, Agregue un alias para seleccionar la instrucción
- 25. Expresión de XPath para seleccionar * todos * elementos, nodos de texto y nodos de comentario en orden de origen
- 26. Pass en una expresión para de LINQ Seleccionar
- 27. ¿Cuál es la expresión RegEx adecuada para los códigos SWIFT?
- 28. Necesita ayuda para obtener la expresión XPath para span dentro de una ventana flotante Iframe
- 29. ¿Cuál es la diferencia entre() y [] en una expresión regular?
- 30. ¿Cuál es el BNF para una expresión regular (para escribir un analizador sintáctico completo o parcial)
Kirill, esta respuesta es demasiado general - no va a proporcionar una expresión XPath específica que selecciona exactamente el PI deseado. –