Добавить атрибут к выбранному узлу из исходного XML - PullRequest
1 голос
/ 24 июня 2011

Я пытаюсь добавить атрибут к узлу, выбранному из исходного XML. Моя первоначальная попытка приведена ниже, но я думаю, что неправильно понимаю концепцию. Нужно ли сначала загружать узел в переменную, или есть другой способ сделать это?

Исходный XML

<root>
   <BigImage>
      <img alt="Flower" src="/flower.jpg" />
   </BigImage>
</root>

Желаемый выход

<img alt="Flower" src="/flower.jpg" class="image-left" />

Ток (неверно) XSLT

<xsl:template match="root">
  <xsl:copy-of select="./BigImage/node()" />
    <xsl:attribute name="class">image-left</xsl:attribute>
</xsl:template>

Ток (неверно) Выход

<img alt="Flower" src="/flower.jpg" />

1 Ответ

2 голосов
/ 24 июня 2011

Это преобразование :

<xsl:stylesheet version="1.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output omit-xml-declaration="yes"/>
 <xsl:strip-space elements="*"/>

 <xsl:template match="img">
   <img class="image-left">
    <xsl:copy-of select="@*"/>
   </img>
 </xsl:template>
</xsl:stylesheet>

при применении к предоставленному документу XML:

<root>
    <BigImage>
        <img alt="Flower" src="/flower.jpg" />
    </BigImage>
</root>

дает именно нужный, правильный результат :

<img class="image-left" alt="Flower" src="/flower.jpg"/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...