You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用PowerShell读取XML指定属性及InnerText值的问题与解决

XML属性与节点文本读取的PowerShell解决办法

目标XML

<application-set>
    <application application-containing-files="true">
        <application-information>
            <application-number application-type="fdaat4">123456</application-number>
        </application-information>
        <submission-information>
            <submission-id submission-type="fdast9">0048</submission-id>
            <sequence-number submission-sub-type="fdasst4">0053</sequence-number>
            <form form-type="fdaft1"></form>
        </submission-information>
    </application>
</application-set>

需求

用PowerShell完成两个操作:

  • 找到application-type属性为fdaat4的<application-number>节点,读取其文本值123456
  • 找到submission-type属性为fdast9的<submission-id>节点,读取其文本值0048

之前试了各种方法,折腾了好几个小时都没成功。

解决方法

核心是用XPath精准定位节点,再通过对应的属性或文本属性获取值。注意原代码里的//admin/是多余的(目标XML里没有这个节点),修正后的代码如下:

读取节点文本值(对应需求的123456和0048)

# 获取application-number节点的文本值
$appNumberText = $xml.SelectSingleNode("//application-set/application/application-information/application-number[@application-type='fdaat4']").InnerText
# 获取submission-id节点的文本值
$submissionIdText = $xml.SelectSingleNode("//application-set/application/submission-information/submission-id[@submission-type='fdast9']").InnerText

读取属性值(若需要获取application-type、submission-type的属性内容)

$appTypeValue = $xml.SelectSingleNode("//application-set/application/application-information/application-number[@application-type]")."application-type"
$submissionTypeValue = $xml.SelectSingleNode("//application-set/application/submission-information/submission-id[@submission-type]")."submission-type"

内容的提问来源于stack exchange,提问作者HoangMN

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 04:01:15