这是一个非常大的 xml 的一部分。我对如何从中获得我需要的结果感到非常困惑。
<Task ID="269930118" Name="Name1" Active="0" NextEID="65" TT="COS" AR="0">
<For ID="12">
<If ID="13">
<When>
<Criteria>
<comp a="[OrigName]" test="MASK" b="53_Inbound_Daily_Account.txt"/>
</Criteria>
<UpdOrig Action="d" ID="45"/>
</When>
</If>
</For>
<If ID="37">
<When>
<Criteria>
<comp a="[TaskStatus]" test="MASK" b="Success"/>
</Criteria>
<Email HostID="282198113" Subject="[TaskName] [TaskStatus]" Message="[TaskName] [TaskStatus]" AddressTo="email@email.com" UseDefRetryCount="1" UseDefRetryTimeoutSecs="1" ID="41" Type="SMTP"/>
<RunTask TaskID="326261818" Wait="0" ID="51"/>
</When>
</If>
<If ID="39">
<When>
<Criteria>
<comp a="[TaskStatus]" test="MASK" b="Failure"/>
</Criteria>
<Email HostID="282198113" Subject="[TaskName] [TaskStatus]" Message="[TaskName] [TaskStatus]" AddressTo="email@email.com" UseDefRetryCount="1" UseDefRetryTimeoutSecs="1" ID="40" Type="SMTP"/>
</When>
</If>
</Task>
如果以下情况属实,我需要将任务 ID 添加到数组中
comp.a -eq "[TaskStatus]"
comp.b -eq "Failure"
The email node exists right after the comp node. #pseudo code obviously
因此,comp 和 email 需要在同一个 when 节点内,但 when 节点可能是给定任务中深入 xml 的任意数量的节点。我很困惑如何找到这些。想法?