XSLT (1.0):获取节点内容时,是否可以忽略/跳过其中的一部分(或子元素)



我有类似于以下内容的xml代码:

<body>Text Here1.
</body>
<body><Title>Title</Title>Text Here2.
</body>
<body>Text Here3.
</body>

我在我的 XSLT 中使用以下代码:

<xsl:when test="@name='body'">
<p> 
<xsl:value-of select='normalize-space(node())'/>
</p>
</xsl:when>

忽略第二个节点中的该子元素的最佳机制是什么,或者在节点内对其应用特殊格式(假设我想将该文本加粗)?

谢谢

使用

XSLT 处理分层结构时,通常使用 apply-templates,它允许您递归遍历 XML 输入。下面的示例将使用 paragraph 元素封装body元素中的文本,并将文本封装在bold元素Title元素中。所有其他元素将被忽略。

<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="html" version="4.0" encoding="iso-8859-1" indent="yes"/>
  <xsl:template match="/">
    <xsl:apply-templates />
  </xsl:template>
  <xsl:template match="body">
    <p>
      <xsl:apply-templates />
    </p>
  </xsl:template>
  <xsl:template match="Title">
    <b>
      <xsl:apply-templates />
    </b>
  </xsl:template>
  <xsl:template match="text()">
    <xsl:value-of select='normalize-space(.)'/>
  </xsl:template>
</xsl:stylesheet>

相关内容

  • 没有找到相关文章

最新更新