-1

これは私が遭遇した問題です。h1 が重複しないように、xml ではすべての h1 タグに h1 の後にラドム番号が付きます。ソース xml と必要な html を以下に示します。

ソース xml:

<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 フラグメントを 1 つの最上位要素でラップし、整形式の 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 に答える