我正在处理以下 XML:
<digiprovMD ID="digiprov-3">
<mdWrap MDTYPE="PREMIS">
<xmlData>
<agent>
<agentIdentifier>
<agentIdentifierType>URI</agentIdentifierType
<agentIdentifierValue>info:fda/system-v0.16.2</agentIdentifierValue>
<agentIdentifierResult>outcome</agentIdentifierResult>
</agentIdentifier>
<agentName>DAITSS Account: UF</agentName>
<agentType>Affiliate</agentType>
</agent>
</xmlData>
</mdWrap>
</digiprovMD>
<digiprovMD ID="digiprov-4">
<mdWrap MDTYPE="PREMIS">
<xmlData>
<agent>
<agentIdentifier>
<agentIdentifierType>URI</agentIdentifierType>
<agentIdentifierValue>info:fda/system-v0.16.2</agentIdentifierValue>
</agentIdentifier>
<agentName>daitss system (v0.16.2)</agentName>
<agentType>software</agentType>
</agent>
</xmlData>
</mdWrap>
</digiprovMD>
<digiprovMD ID="digiprov-5">
<mdWrap MDTYPE="PREMIS">
<xmlData>
<agent>
<agentIdentifier>
<agentIdentifierType>URI</agentIdentifierType>
<agentIdentifierValue>info:fda/system-v0.16.2</agentIdentifierValue>
<agentIdentifierResult>source</agentIdentifierResult>
</agentIdentifier>
<agentIdentifier>
<agentIdentifierType>URI</agentIdentifierType>
<agentIdentifierValue>someotheruri</agentIdentifierValue>
<agentIdentifierResult>outcome</agentIdentifierResult>
</agentIdentifier>
<agentName>daitss system (v0.16.2)</agentName>
<agentType>software</agentType>
</agent>
</xmlData>
</mdWrap>
</digiprovMD>
我想选择具有特定值 agentIdentifierValue 的所有代理,例如 info:fda/system-v0.16.2,仅当 1. 它没有与之关联的 agentIdentifierResult 标签和 2. 如果有与之关联的 agentIdentifierResult 它的值应该是'结果'
因此,在这种情况下,应选择两个代理 digiprov-3 和 digiprov-4。我该如何为此编写xpath?
我试过这个(伪代码): (result = 结果和 value = '#{uri.content}') 或 (value = '#{uri.content}') 但这也选择了第三个代理 digiprov-5!