2010-05-28 86 views
1

如何使用XSL检索xml的根节点的id属性?如何使用XSL检索xml的根节点的id属性?

+0

XML输入,期望的行为以及您尝试过的内容的示例将是人们帮助您的极大诱因。 – 2010-05-28 17:19:42

+0

好问题(+1)。请参阅我的回答以获取解释和完整解决方案。 – 2010-05-28 17:23:30

+0

当你说“id属性”时,你的意思是一个名为“id”的属性? (而不是声明为ID类型的属性) – LarsH 2010-09-14 16:51:51

回答

2

如何使用XSL检索xml的根节点的 的id属性?

你的意思是顶级元素的......。 The root node不是一个元素,不能有属性

这简单的XPath表达式选择任何XML文档的顶部元件的id属性:

/*/@id 

在XSLT,一个将使用:

<xsl:variable name="vsomeName" select="/*/@id"/> 

<xsl:copy-of select="/*/@id"/> 

<xsl:value-of select="/*/@id"/> 
+0

+1。请注意,在XML规范中,顶层元素的术语是“根或文档元素”,而在XDM中,它似乎是“文档元素”。不过,XSLT 2.0规范编辑器Michael Kay更喜欢“最外层的元素”,因为它不容易与其父“文档节点”混淆。 – LarsH 2010-09-14 16:49:51

+0

@LarsH:我总是使用术语“top元素”来与W3C XPath 1.0规范中描述的* root *节点(文档节点)区分开来:http://www.w3.org/TR/1999/REC-xpath-19991116 /#根节点 – 2010-09-14 17:21:50

+0

我明白,这是有道理的。我想让@user知道他/她会在官方规格中遇到不同的条款,以及为什么一些严肃的XMLites不使用官方规定。 – LarsH 2010-09-14 18:38:49