Xml 查找与属性相关的元素,重点放在其中一个元素上

Xml 查找与属性相关的元素,重点放在其中一个元素上,xml,xpath,xpath-1.0,Xml,Xpath,Xpath 1.0,我试图找到一种方法来确保,如果XML中存在具有特定属性值的元素,则它们使用XPath具有匹配的不同元素 我正在为我的组织发送的信息开发一个数据验证器。我需要执行的验证之一是,如果容器2中有一个Description元素,它具有一个Word属性为GNC的Description-Type元素,那么需要有一个Item元素,它的Item-Type元素container 1具有相同的内部ID值和一个Word值C或G 示例XML: <Root> <Container1 ID="387157

我试图找到一种方法来确保,如果XML中存在具有特定属性值的元素,则它们使用XPath具有匹配的不同元素

我正在为我的组织发送的信息开发一个数据验证器。我需要执行的验证之一是,如果容器2中有一个Description元素,它具有一个Word属性为GNC的Description-Type元素,那么需要有一个Item元素,它的Item-Type元素container 1具有相同的内部ID值和一个Word值C或G

示例XML:

<Root>
<Container1 ID="38715795">
    <Item ID="119479" InternalID="2090205">
        <ItemType Word="C">A Value</ItemType>
    </Item>
    <Item ID="119480" InternalID="2090206">
        <ItemType Word="NP">B Value</ItemType>
    </Item>
    <Item ID="175656" InternalID="2137464">
        <ItemType Word="C">A Value</ItemType>
    </Item>
</Container1>
<Container2 ID="38715802">
    <Description ID="119479" InternalID="2090205">
        <DescriptionType Word="GNC">Description Z</DescriptionType>
    </Description>
    <Description ID="119480" InternalID="2090206">
        <DescriptionType Word="P">Description W</DescriptionType>
    </Description>
    <Description ID="175656" InternalID="2137464">
        <DescriptionType Word="P">Description Z</DescriptionType>
    </Description>
</Container2>
</Root> 

问题是有可能存在一个Item元素,它有一个C或G单词值,但没有匹配的描述值,这是可以的。示例XML中的情况应该是正常的,但路径返回的是true而不是false。我需要找到一种方法来检查每个描述元素是否有一个Item元素,而不关心每个Item元素是否有一个Description元素。

这是因为右侧的xpath:

/Root/Container1/Item/@InternalChargeID[../ItemType/@Word = "C" or ../ItemType/@Word = "G"]
两者都匹配

<Item ID="119479" InternalID="2090205">

<Item ID="175656" InternalID="2137464">

它向具有相同的
@InternalID

谢谢!!我知道它一定是个小东西。我已经看了这么久了,我就是看不到这个问题。
<Item ID="119479" InternalID="2090205">

<Item ID="175656" InternalID="2137464">
boolean(/Root/Container2/Description[DescriptionType/@Word = 'GNC']/@InternalID !=
    /Root/Container1/Item[@InternalID = 
/Root/Container2/Description[DescriptionType/@Word =
    'GNC']/@InternalID][ItemType/@Word = 'C' or ItemType/@Word = 'G']/@InternalID)