XML в Xml - Xslt - PullRequest
       28

XML в Xml - Xslt

1 голос
/ 02 декабря 2009

я пытаюсь выучить xslt но у меня нет хороших учебников, где я могу найти всю информацию вместе

пожалуйста, помогите мне здесь ...

 <xsl:template match="@*|node()">
    <xsl:copy>
        <xsl:apply-templates select="@*|node()"/>
    </xsl:copy>
</xsl:template>

  <xsl:template match="@*">
    <xsl:attribute namespace="{namespace-uri()}" name="{name()}"/>
  </xsl:template>

это некоторый код, который я нашел в stackOverFlow Но я не понимаю, что именно "выражения" "@ | node ()", "@ ", "{namespace-uri ()}", "name ()"

означает ... помоги мне .....

Ответы [ 2 ]

4 голосов
/ 02 декабря 2009

Во-первых, я хотел бы отметить, что вы можете найти это и многое другое в спецификациях XPath .

Краткая версия заключается в том, что префикс @ указывает на узел атрибута (в отличие от узлов элемента и текста, как правило), * означает «любое имя» более или менее (поэтому * соответствует всем элементам и @* все атрибуты), node() соответствует любому элементу или текстовому узлу, | - оператор «соединения» или «объединения» (поэтому @*|node() соответствует всем элементам, тексту и узлам атрибутов).

Переходя к менее распространенному материалу, namespace-uri() возвращает полный URI для пространства имен "узла контекста" (подумайте "это" в терминах ОО), а name() возвращает имя текущего узла с соответствующий префикс пространства имен (обратите внимание, что префикс взят из файла XSLT, а не из файла XML, если они различаются).

Наконец, {...} - это способ включить выражение XPath в значение атрибута, где они обычно не допускаются. Вы чаще всего будете видеть их в таких конструкциях, как <a href="{link/url}">.

Я понимаю, что это, вероятно, довольно толстое чтение. Надеюсь, это поможет, хотя. : -)

1 голос
/ 03 декабря 2009

Я обычно использую учебные пособия и справочники по Zvon, в которых есть очень полные примеры:

http://www.zvon.org/

и для XSLT:

http://www.zvon.org/xxl/XSLTutorial/Output/index.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...