xml - 如何使用powershell从带有soap标头的xml文件中提取值
问题描述
我有多个 xml 文件,想使用 powershell 提取特定标签的内容。我尝试了以下方法,但似乎不起作用:
第一个例子:
Get-ChildItem -Path $source -Include ('*.xml') | Foreach{
[XML]$SOAP = Get-Content $_
Write-Host $SOAP.Envelope.Body.Request.Batch.Reference
}
第二个例子:
[xml]$ret.Envelope.Body.Request.Batch.Reference.'#text'
示例 xml 如下:
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
<soap:Header></soap:Header>
<soap:Body>
<v1:Request>
<batch>
<batchName>CPayments</batchName>
<batchId>98754</batchId>
<creationDate>2018-06-21T20:45:12</creationDate>
<Reference>833511</Reference>
</batch>
</v1:Request>
</soap:Body>
</soap:Envelope>
解决方案
要提取节点的文本值<Reference>
,请尝试以下操作:
$items = Select-Xml -Xml $input -XPath '//*[local-name()="Reference"]/text()'
$items| Foreach {$_.Node.Value}
输出:
833511
推荐阅读
- ios - Flutter iOS 不擦除 Firebase 用户数据
- powershell - powershell并行增加阈值
- ruby-on-rails - 没有使用 Ruby on Rails 运行 Heroku 的 Web Dynos
- algorithm - 如何找到最小 L 使得长度为 L 的 k 个给定段可以覆盖 n 个给定点?
- binance - 如何在 Binance 中将 BNB 从“资金”转移到“法币和现货”
- visual-studio-code - VS Code Mac Angular 10 应用程序“不支持配置的调试类型‘chrome’。”
- python - import * 和 from tkinter import 消息框的区别?
- python - pickle.dump/load 与 pickle.dumps/loads
- javascript - 未捕获的类型错误:无法设置未定义的属性(设置“位置”)
- python - 硒网络驱动程序python