如何使用 XSL 获取 XML 元素的值

How to get value of XML element using XSL

我有一个XML和XSL代码,产品有图片和描述。我想将此图像附加到描述标签中。

<images>
  <img_item type_name="">http://www.example.com.tr/ExampleData/example1.jpg</img_item>
  <img_item type_name="">http://www.example.com.tr/ExampleData/example2.jpg</img_item>
  <img_item type_name="">http://www.example.com.tr/ExampleData/example3.jpg</img_item>
</images>

我这样写 XSL 代码(但它没有得到 img_type 的值):

      <Description>
        <xsl:for-each select="images/img_item">
          <xsl:text><![CDATA[<br/><img src="]]></xsl:text>
          <xsl:value-of select="images/img_item"/>
          <xsl:text><![CDATA[" />]]></xsl:text>
        </xsl:for-each>
      </Description>

我的代码不起作用。我如何获得 img_type 的价值(我如何获得这些链接。)

您没有获得价值的原因是因为已经定位在 img_item 上,而您的 xsl:value-of select 将与此相关。所以你只需要这样做...

<xsl:value-of select="." />

但是,您应该避免使用 CDATA 写出标签(除非您真的希望它们被转义)。直接把你要的元素写出来

<xsl:template match="/">
  <Description>
    <xsl:for-each select="images/img_item">
      <br />
      <img src="{.}" />
    </xsl:for-each>
  </Description>
</xsl:template>

注意使用 Attribute Value Templates 写出 src 属性值。