How to get tag name of root element in an XML document w/ XSLT?

前端 未结 4 1022
遇见更好的自我
遇见更好的自我 2020-12-16 10:27

I\'m interested in assigning the tag name of the root element in an xml document to an xslt variable. For instance, if the document looked like (minus the DTD):

<         


        
相关标签:
4条回答
  • 2020-12-16 11:02

    you want local-name()

    0 讨论(0)
  • 2020-12-16 11:04

    Use the XPath name() function.

    One XPath expression to obtain the name of the top (not root!) element is:

           name(/*)

    The name() function returns the fully-qualified name of the node, so for an element <bar:foo/> the string "bar:foo" will be returned.

    In case only the local part of the name is wanted (no prefix and ":"), then the XPath local-name() function should be used.

    0 讨论(0)
  • 2020-12-16 11:11

    Figured it out. The function name() given the parameter * will return foo.

    0 讨论(0)
  • 2020-12-16 11:12

    I think you want to retrieve the name of the outermost XML element. This can be done like in the following XSL sample:

    <?xml version="1.0" encoding="UTF-8" ?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    
      <xsl:variable name="outermostElementName" select="name(/*)" />
    
      <xsl:template match="/">
        <xsl:value-of select="$outermostElementName"/>
      </xsl:template>
    </xsl:stylesheet>
    

    Please note that there is a slight difference in XPath terminology:

    The top of the tree is a root node (1.0 terminology) or document node (2.0). This is what "/" refers to. It's not an element: it's the parent of the outermost element (and any comments and processing instructions that precede or follow the outermost element). The root node has no name.

    See http://www.dpawson.co.uk/xsl/sect2/root.html#d9799e301

    0 讨论(0)
提交回复
热议问题