2009-10-10 56 views
1

我想要做的是使用XSL輸出所有獨特的元素和屬性名稱。不是他們的價值,而是他們的名字。有沒有辦法從XML文檔輸出元素和屬性的名稱?

所以給出的XML:

<item id="12"> 
    <price>12.00</price> 
    <author>Name</author> 
    <desc>Description</desc> 
</item> 

我想表明,有項目,價格,作者,遞減的元素。除此之外,我想知道'id'的屬性。

有關如何做到這一點的任何想法?或者我可以閱讀的文章?它甚至有可能嗎?

感謝,
列維

+0

順便說一句,你的XML示例是不能很好地形成 – 2009-10-10 20:33:28

回答

2

我沒有使用過他們很多自己,但這些功能應該讓你有:XPath functions on nodes。更具體地說,看看name()local-name()。由於它們在節點上工作,因此在元素和屬性上使用它們應該沒有問題。

1

嘗試這種情況:

<?xml version="1.0"?> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 

    <xsl:key name="names" match="//* | //@*" use="name()"/> 
    <xsl:template match="/"> 
    <xsl:for-each select="(//* | //@*)[count(key('names', name())) = 1]"> 
     <xsl:value-of select="name()" /><br /> 
    </xsl:for-each> 
    </xsl:template> 

</xsl:stylesheet> 
+1

更多類似'<的xsl:for-每個選擇=「(// * | // @ *)[計數( 。| key('names',name())[1])= 1]「>',還是我誤解了」獨特「要求? – Tomalak 2009-10-12 11:32:24

+0

我不這麼認爲;我在創建「名稱」鍵時使用了name(),所以它可能不會匹配。 – 2009-10-12 12:05:24

相關問題