我试着让XSLT另一个元素值获得父元素
我想要做这样的事情得到其中的SequenceNumber = 2
我试图TransactionDetail元素基于子元素值的父节点那样做,但即时通讯失去了一些东西......
ancestor:://*[local-name()='SequenceNumber'][text()=2]
//TransactionDetail[//SequenceNumber = 2]
这是XML
<Root>
<biztalk_1>
<body>
<ActiveStore_SalesTransaction_1.70>
<TransactionDetail>
<SequenceNumber>2</SequenceNumber>
<TransactionDetailGroup>
<Item>
<ItemID>22</ItemID>
<NonMerchandiseFlag>1</NonMerchandiseFlag>
</Item>
</TransactionDetailGroup>
</TransactionDetail>
</ActiveStore_SalesTransaction_1.70>
</body>
</biztalk_1>
为什么使用name()不是一个好习惯 – MIkCode
@MIkCode可能有很多原因。我在这里指着一些。 1.处理速度更快(取决于处理器)。一些处理器可能首先列出所有的后代(因为'*'),然后基于'name()'进行过滤。 2. Xpath很容易在没有'name()'的情况下编写。而且,除非你想转义命名空间,否则没有必要在这样的xpath中使用'name()'。 –