Элемент <xsl:processing-instruction>
Формирует узел инструкции по обработке в потоке вывода.
<xsl:processing-instruction
name = "pi-name">
</xsl: processing-instruction>
Атрибуты
- имя
Обязательный. Имя NCName инструкции по обработке.
Сведения об элементе
Количество вхождений |
Без ограничений |
Родительские элементы |
xsl:attribute, xsl:comment, xsl:copy, xsl:element, xsl:fallback, xsl:for-each, xsl:if, xsl:message, xsl:otherwise, xsl:param, xsl:processing-instruction, xsl:template, xsl:variable, xsl:when, xsl:with-param, элементы вывода |
Дочерние элементы |
xsl:apply-imports, xsl:apply-templates, xsl:call-template, xsl:choose, xsl:copy, xsl:copy-of, xsl:fallback, xsl:for-each, xsl:if, xsl:message, xsl:number, xsl:text, xsl:value-of, xsl:variable |
Заметки
Элемент <xsl:processing-instruction> формирует узел инструкции по обработке в потоке вывода. Атрибут name указывает на имя. Содержимое элемента предоставляет оставшуюся часть инструкции по обработке.
XML-декларация не является инструкцией по обработке и не должна формироваться путем настройки атрибутов в элементе <xsl:output>.
Пример
В следующем примере показан шаблон, формирующий XML-декларацию и инструкцию по обработке таблицы стилей в потоке вывода.
XML-файл (customers.xml)
<?xml version='1.0'?>
<?xml-stylesheet type="text/xsl" href="pi.xsl" ?>
<customers>
<customer>
<name>James Smith</name>
<address>123 Elm St.</address>
<phone>(123) 456-7890</phone>
</customer>
<customer>
<name>Amy Jones</name>
<address>456 Oak Ave.</address>
<phone>(156) 789-0123</phone>
</customer>
</customers>
XSLT-файл (pi.xsl)
<?xml version='1.0'?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
<xsl:output method='xml' version='1.0'/>
<xsl:template match="/">
<xsl:processing-instruction name="xml-stylesheet">
<xsl:text>type="text/xsl" href="style.xsl"</xsl:text>
</xsl:processing-instruction>
<xsl:apply-templates />
</xsl:template>
<xsl:template match="@* | *">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:template></xsl:stylesheet>
Попробуйте!
Скопируйте вышеприведенный код и сохраните его в соответствующие файлы на локальном жестком диске.
Запустите пример с помощью программы msxsl.exe (ее можно загрузить по адресу www.microsoft.com/downloads/) из командной строки, как показано далее.
msxsl customers.xml pi.xsl -o new-cust.xml
Вывод
Результатом этого преобразования будет идентичный XML-файл с новой, вложенной в него таблицей стилей. Выходной файл (new-cust.xml) будет выглядеть следующим образом.
<?xml version="1.0" encoding="UTF-16"?>
<?xml-stylesheet type="text/xsl" href="style.xsl" ?>
<customers>
<customer>
<name>James Smith</name>
<address>123 Elm St.</address>
<phone>(123) 456-7890</phone>
</customer>
<customer>
<name>Amy Jones</name>
<address>456 Oak Ave.</address>
<phone>(156) 789-0123</phone>
</customer>
</customers>