-1

这是我遇到的一个问题。为了防止 h1 被复制,在 xml 中每个 h1 标签都会在 h1 之后有一个随机数。源 xml 和想要的 html 如下所示:

源代码:

<h1_JW1XRT>Hello1</h1_JW1XRT>
<h1_JXZRIE>Hello2</h1_JXZRIE>

转换成html

<h1 id="h1_JW1XRT">Hello1</h1>
<h1 id="h1_JXZRIE">Hello2</h1>

我怎样才能写这个模板?

4

1 回答 1

1

这种转变

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

 <xsl:template match="*[starts-with(name(), 'h1')]">
  <h1 id="{name()}"><xsl:apply-templates/></h1>
 </xsl:template>
</xsl:stylesheet>

当应用于以下 XML 文档(提供的 XML 片段,包装在单个顶部元素中——成为格式良好的 XML 文档)时:

<t>
    <h1_JW1XRT>Hello1</h1_JW1XRT>
    <h1_JXZRIE>Hello2</h1_JXZRIE>
</t>

产生想要的正确结果:

<h1 id="h1_JW1XRT">Hello1</h1>
<h1 id="h1_JXZRIE">Hello2</h1>

说明: 正确使用标准 XPath 函数starts-with()

于 2012-09-11T04:31:57.943 回答