我有两个节点列表,如下所示:
第一个清单:
<WebAddresses>
<item>
<AddressID>01</AddressID>
<Street>Street01</Street>
<State>Idaho<State>
<Country>US</Country>
<item>
<item>
<AddressID>02</AddressID>
<Street>Street02</Street>
<State>Kentucky<State>
<Country>US</Country>
<item>
</WebAddresses>
第二名单
<Addresses>
<row>
<WebID>02</WebID>
<Line1>Line1</Line1>
<Line2>Line1</Line2>
<State>Lousiana</State>
<Country>US</Country>
</row>
<row>
<WebID>03</WebID>
<Line1>Line1</Line1>
<Line2>Line2</Line2>
<State>California</State>
<Country>US</Country>
</row>
</Addresses>
在我的 xslt 我有
<xsl:variable name="webAddr" select="$webXML\\WebAddresses"/>
<xsl:variable name="appAddr" select="$AppXML\\Addresses"/>
我想过滤第二个列表,消除WebID
第一个列表项中的那些行,以便输出列表只有带有WebID=03
. 我尝试了以下方法:
<xsl:variable name="leftX" select="$appAddr[not(WebID=$webAddr/AddressID)]"/>
但它不是过滤数据,而是返回未更改的appAddr
列表。我可以通过 .net 代码做到这一点,但正在寻找一种 xslt 方式。请帮忙。