Я использую xsl:stylesheet
Обработка инструкции в моем XML. Нужно ли вообще выбирать этот ИП с помощью XPath? Если да, то как?Что такое выражение XPath для выбора инструкции по обработке?
ответ
Использование processing-instruction()
узловое испытание.
Как правило, команда обработки может быть выбрана с использованием теста узла processing-instruction()
.
В частности, в качестве аргумента можно указать имя (цель) требуемого узла PI.
Применение:
/processing-instruction('xml-stylesheet')
Это выбирает любой инструкции обработки с именем xsl-stylesheet
, который определен на глобальном уровне (это родственный верхнего элемента).
Обратите внимание, что xsl:stylesheet
является недопустимой целью PI для PI. Двоеточие ':'
используется для разграничения префикса пространства имен от локального имени - однако команда обработки target не может принадлежать пространству имен. В соответствии с W3c XPath Specification:
«Инструкция обработки имеет расширенное имя: локальная часть целевой инструкции обработки, пространства имен URI, является нулевым.»
Также в соответствии с W3C документа: "Associating Style Sheets with XML documents 1.0», цель ПИ, которая связывает таблицу стилей в документ XML должен быть:. "xml-stylesheet"
- не "xsl:stylesheet"
"xsl-stylesheet"
или
Вот полный пример:
<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>
Когда это преобразование применяется к следующему документу XML:
<?xml-stylesheet type="text/xsl" href="test"?>
<Books>
<Book name="MyBook" />
</Books>
выражение XPath вычисляется и выбранный узел ПИ выводится:
<?xml-stylesheet type="text/xsl" href="test"?>
Я вижу, что вы по-прежнему придерживаетесь своих старых трюков ... Удаление и повторная отправка ответа на отбрасывание голосов - прямое злоупотребление: как люди решают оценить ваши ответы, это их решение, а не ваше. Пожалуйста, воздержитесь от этого. – Shog9
Does '/ processing-instruction ('xml-stylesheet')' выбрать вещи с именем 'xsl-stylesheet'? Это было бы волшебством! Обратите внимание на 'xml' vs' xsl'. –
@MicheldeRuiter, да, это так. Это формально определено здесь (третий абзац снизу): http://www.w3.org/TR/xpath/#node-tests –
шляпой обработка-инструкции две части цели и данные с синтаксисом:
<?target data?>
Если вы используете:
<xsl:value-of select="/processing-instruction('xml-stylesheet')" />
Он будет возвращать только часть данных, в примере Dimitre Novatchev, он возвращает:
type="text/xsl" href="test"
Так строковое значение инструкции обработки является частью данных. оценивается выражение <xsl:value-of
, и результирующий объект преобразуется в строку, как неявный вызов функции string()
.
- 1. Что такое xpath для выбора диапазона узлов?
- 2. Что такое выражение XPATH для этого
- 3. инструкции по обработке XML
- 4. выражение XPath для выбора текста из ссылки
- 5. CSS и инструкции по обработке
- 6. Что такое регулярное выражение xpath для извлечения этого метатега?
- 7. выражение XPath для выбора всех узлов листа
- 8. Selenium, что такое xpath
- 9. Что такое составные инструкции?
- 10. Что такое выражение XPath для выбора атрибута на основе его префикса?
- 11. Что такое расшифрованная форма инструкции?
- 12. Что такое выражение регулярное выражение для CDATA
- 13. Что такое выражение для расщепления?
- 14. Что такое XPath/regex для этого текста?
- 15. Исключить инструкции по обработке из XSLT
- 16. Как форматируются инструкции по обработке ошибок?
- 17. Как упорядочить инструкции по обработке в Marklogic
- 18. Инструкции по обработке парсеров в XSLT
- 19. Что такое инструкции IN & OUT для x86?
- 20. Что такое синтаксис для дублирования инструкции SQL?
- 21. Инструкции по обработке логического кода обработки ошибок
- 22. Я не получаю инструкции по обработке XSL!
- 23. Что такое «первичное выражение»?
- 24. Что такое «отправка ошибок» в обработке сервлетов?
- 25. Что такое XPATH для простого родного брата?
- 26. Что такое id-выражение?
- 27. Что такое регулярное выражение?
- 28. Что такое механизм выбора?
- 29. Что такое регулярное выражение?
- 30. Что такое «Мультипликативное выражение»?
Кирилл, этот ответ слишком общий - вы не предоставляете определенное выражение XPath, которое выбирает именно требуемый PI. –