我有一个这样的 XML 文档:
(p 是先前定义的)
<p:Players>
<p:Player>
<p:Name>David</p:Name>
<p:Club>
<p:Name>Madrid</p:Name>
</p:Club>
<p:PreviousClubs>
<p:Club><p:Name>Milan</p:Name></p:Club>
<p:Club><p:Name>Manchester</p:Name></p:Club>
</p:PreviousClubs>
</p:Player>
<p:Player>
<p:Name>Alex</p:Name>
<p:Club>
<p:Name>Madrid</p:Name>
</p:Club>
<p:PreviousClubs>
<p:Club><p:Name>Birmingham</p:Name></p:Club>
<p:Club><p:Name>Manchester</p:Name></p:Club>
</p:PreviousClubs>
</p:Player>
<p:Player>
<p:Name>Fred</p:Name>
<p:Club>
<p:Name>Madrid</p:Name>
</p:Club>
<p:PreviousClubs>
<p:Club><p:Name>Milan</p:Name></p:Club>
<p:Club><p:Name>Birmingham</p:Name></p:Club>
</p:PreviousClubs>
</p:Player>
</p:Players>
我想获得以前为给定俱乐部效力过的所有球员的姓名。
这就是我到目前为止所拥有的,但它没有收到任何东西:
/*[1]/p:Player[p:PreviousClubs/p:Club/p:Name='Manchester']/p:Name/text()
我希望那会回来
David
Alex
但我什么也得不到
有人能看出我哪里出错了吗?
p: 的命名空间及其前缀是正确的 - 已在其他地方使用过并且很好。我觉得我选择特定父节点的逻辑是错误的......
我需要坚持使用 XSLT 1.0 作为其 BizTalk 驱动。