私には要素が2つあり、[ - ]で区切られています。例えば120-125です。xml要素から正規表現を使用して数値を取得する
<first>120</first>
<second>125</second>
どのように私はこれを達成することができます 今、私はこれらの2つの数値を取得し、これらの値を持つXML要素を作成したい、そして最終的に私はこのような何かをしたい、XSLTを使用していますか?
このようなルックスを変更するには、EDIT
私のXML構造:
<issue>
<number>3</number>
<year>2017</year>
<article>
<title>Title</title>
<author>
<firstname>name</firstname>
</author>
<pages>71-72</pages>
<reference>reference</reference>
</article>
</issue>
XSLT:私が持っていると思います
<issue>
<number>
<xsl:value-of select="number"/>
</number>
<year>
<xsl:value-of select="year"/>
</year>
<xsl:for-each select="article">
<article>
<title>
<xsl:value-of select="title"/>
</title>
<author>
<firstname>
<xsl:value-of select="firstname"/>
</firstname>
</author>
<xsl:template match="pages">
<xsl:copy>
<first>
<xsl:value-of select="substring-before(., '-')" />
</first>
<second>
<xsl:value-of select="substring-after(., '-')" />
</second>
</xsl:copy>
</xsl:template>
<reference>
<xsl:value-of select="reference"/>
</reference>
</article>
</issue>
出力XML:
<issue>
<number>3</number>
<year>2017</year>
<article>
<title>Title</title>
<author>
<firstname>name</firstname>
</author>
<first>71</first>
<second>71</second>
<reference>reference</reference>
</article>
</issue>
XSLT 1.0の 'substring-before()'と 'substring-after()'関数を使って文字列を分割することができます。 –
XSLT 1.0を使用している場合、正規表現は使用できませんが、@AniketVの示唆するように問題は簡単に解決できます。 –
@AniketVどのようにしてsubstring-before()の最初のパラメータとしてxml要素の内容を配置できますか? –
cerbin