1
我有这个片段的XSLT代码:在XSLT/XPath中,如何获取与特定名称不匹配的第一个属性?
<xsl:variable name="key" select="@*[1]"/>
但我需要它实际设置key
成为第一属性(如果存在)不具有一个特别的名称。因此,这两个节点将具有相同的key
,并且如果它存在special_attr
将被忽略。
<MyNode var="1" />
<MyNode special_attr="foo" var="1" />
什么是正确的选择语法来获得他的名字是不是special_attr
第一属性的值?
不幸的是,这可能不是你想要的,因为在XPath中,“属性节点的相对顺序依赖于实现”(http://www.w3.org/TR/xpath/#dt -document阶)。所以从理论上讲,除了_special_attr_之外哪个属性会首先出现。 – 2010-07-07 17:35:06
@Owen:有趣,谢谢。我的要求是支持此修复:http://www.codeproject.com/KB/XML/XMLOverride.aspx?msg=3527558#xx3527558xx,他的设计的一部分使用“第一属性是关键”的概念。它在我的实施过程中始终如一地工作,但他的设计可能应该更好地考虑标准。 – 2010-07-07 19:17:00
@Scott:同意。在序列很重要的情况下,元素就是你想要的,而不是属性。 – 2010-07-07 20:47:10