考慮以下XML:
如何從XML元素中去除文本,重新排列文本並將其與XSLT連接起來?
<root>
<contrib contrib-type="author">
<name>
<last-name>Simpson</last-name>
<first-name>Bart</first-name>
</name>
</contrib>
<contrib contrib-type="author">
<name>
<last-name>Zoidberg</last-name>
<first-name>Dr.</first-name>
</name>
</contrib>
</root>
...我怎樣才能把這些元素的含量得到這個輸出?
<Authors contrib-type="author">Bart Simpson</Authors>
<Authors contrib-type="author">Dr. Zoidberg</Authors>
我試圖用
<last-name>
,並
用一個空格隔開內容來連接的
<first-name>
內容。
此外,也沒有必要的
Authors
任何子元素(除暴安良的
<name>
,
<first-name>
,如果可能的話
<last-name>
元素)。
這是XSL我到目前爲止( 這是不工作):
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes" method="xml"/>
<xsl:strip-space elements="*"/>
<!-- identity rule -->
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<!-- Authors -->
<xsl:template match="contrib[@contrib-type='author']">
<Authors>
<xsl:apply-templates select="@*|node()"/>
<xsl:value-of select = "concat(given-names, surname)" />
</Authors>
</xsl:template>
</xsl:stylesheet>
到目前爲止,我能夠在 <contrib>
元素轉換爲 <Authors>
,但我不能連接或剝離其子元素...
謝謝@Ankur!漂亮而簡單,完美。 – 2012-08-08 16:47:37
歡迎您,如果您有任何問題,請告訴我,我更樂意回答儘可能簡單和複雜的問題。 :) – 2012-08-08 16:52:01