我有一个包含以下元素的xml文件:
<telecom use="HP" value="tel:+1-512-555-1212" />
<telecom use="WP" value="tel:+1-512-123-4567" />
这将返回第一个节点的值:
$qrda.ClinicalDocument.recordTarget.patientRole.telecom[0].value
但是我需要能够返回use =“HP”的节点,我不确定它们是否总是按照正确的顺序。
非常感谢任何帮助。
答案 0 :(得分:3)
非XPATH方法:
($qrda.ClinicalDocument.recordTarget.patientRole.telecom | Where {$_.use -eq "HP"}).value
或者(感谢Tomalak的有用评论),使用the comparison statement格式:
($qrda.ClinicalDocument.recordTarget.patientRole.telecom | Where use -eq "HP").value
答案 1 :(得分:2)
使用XPath。假设$qrda
是您的XML文档:
$path = "/ClinicalDocument/recordTarget/patientRole/telecom[@use='HP']"
$telecom = $qrda.SelectSingleNode($path)
由于该路径非常长且过于具体,我们可以减少它:
$telecom = $qrda.SelectSingleNode("//telecom[@use='HP']")