通過@Mathias穆勒一個更好的選擇,
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="text" encoding="UTF-8"/>
<xsl:template match="Manager">
<xsl:value-of select="Name" />
<xsl:text>: </xsl:text>
<xsl:value-of select="ID" />
<xsl:text> </xsl:text>
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="text()"/>
</xsl:transform>
爲什麼這是更好的:它會更正確地控制文本輸出(假設你真的想將其輸出爲純文本格式)。它也是更多的面向XSLT模板,與環繞着的for-each
環相比,它更易於擴展和維護。
使用descendant-or-self
軸:
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="text" doctype-public="XSLT-compat" omit-xml-declaration="yes" encoding="UTF-8" indent="yes" />
<xsl:template match="//Managers">
<xsl:for-each select="descendant-or-self::Manager">
<xsl:value-of select="Name" />: <xsl:value-of select="ID" /><xsl:text> </xsl:text>
</xsl:for-each>
</xsl:template>
</xsl:transform>
輸出:
Matt: 1 Joe: 11 Dave: 111 mike: 2
http://xsltransform.net/nc4NzQB
所以你試過_anything_?閱讀任何教程?你的困難究竟是什麼? – DavidS 2015-04-01 14:52:50
嗯。是啊。我有點擔心問題是什麼是適當的XPath。 XSLT非常簡單。今後,最好張貼您嘗試過的樣本 – 2015-04-01 14:55:56
請不要做標籤垃圾郵件並限制爲直接相關的標籤。 – 2015-04-01 16:16:12