2009-10-10 4 views
1

내가하려는 것은 XSL을 사용하여 모든 고유 한 요소 및 특성 이름을 출력하는 것입니다. 그들의 가치가 아니라 그들의 이름.XML 문서에서 요소 및 속성의 이름을 출력하는 방법이 있습니까?

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

내가 품목, 가격, 저자, 내림차순의 요소가 있음을 보여주고 싶은 :

그래서의 XML을 부여. 그 외에도 'id'속성이 있음을 알고 싶습니다.

방법에 대한 아이디어가 있으십니까? 또는 그것에 대해 읽을 수있는 기사? 심지어 가능할까요? 나는 많은에게 그들에게 자신을 사용하지 않은,하지만 이러한 기능이 당신을 얻을해야
레위

+0

이 BTW, 당신의 XML 샘플은'

답변

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

더 잘 형성되지 않습니다 : 대한-각각 선택 = "(// * | // @ *) 수 (.key ('names', name()) [1]) = 1] ">'아니면"고유 한 "요구 사항을 오해하고 있습니까? – Tomalak

+0

나는 그렇게 생각하지 않는다. 'name'키를 만들 때 name()을 사용 했으므로 일치하지 않을 수도 있습니다. –

관련 문제