如何在powershell中解析XML api响应并从中获取值



我正在从PowerShell中的api获得xml响应,任何人都可以告诉我如何循环和读取元素值吗。

我的api响应

<tlp:Names xmlns:tlp="http://www.timelog.com/XML/Schema/tlp/v4_4">
<tlp:Name ID="12">
<tlp:Project>ProjectA</tlp:ProjectID>
<tlp:Task>TaskA</tlp:TaskID>
</tlp:Name>
<tlp:Name ID="13">
<tlp:Project>ProjectB</tlp:ProjectID>
<tlp:Task>TaskB</tlp:TaskID>
</tlp:Name>
<tlp:Name ID="17">
<tlp:Project>ProjectC</tlp:ProjectID>
<tlp:Task>TaskC</tlp:TaskID>
</tlp:Name>
<tlp:Name ID="14">
<tlp:Project>ProjectD</tlp:ProjectID>
<tlp:Task>TaskD</tlp:TaskID>
</tlp:Name>

<tlp:名称>

如何从powershell中上述响应的xml数据中读取项目和任务值。提前谢谢。

XML无效。

";项目";以及";任务;元素用";ProjectID";以及";任务ID";。他们必须匹配。

一旦您或开发人员/admin修复了此问题,您就可以将纯XML内容强制转换/解析为XML文档,并像PowerShell中的其他对象一样使用它(通过属性访问器(。

这里以一个有效的XML:为例

$xmlPlainText = @'
<tlp:Names xmlns:tlp="http://www.timelog.com/XML/Schema/tlp/v4_4">
<tlp:Name ID="12">
<tlp:Project>ProjectA</tlp:Project>
<tlp:Task>TaskA</tlp:Task>
</tlp:Name>
<tlp:Name ID="13">
<tlp:Project>ProjectB</tlp:Project>
<tlp:Task>TaskB</tlp:Task>
</tlp:Name>
<tlp:Name ID="17">
<tlp:Project>ProjectC</tlp:Project>
<tlp:Task>TaskC</tlp:Task>
</tlp:Name>
<tlp:Name ID="14">
<tlp:Project>ProjectD</tlp:Project>
<tlp:Task>TaskD</tlp:Task>
</tlp:Name>
</tlp:Names>
'@
$xmlDocument = [xml]$xmlPlainText
$xmlDocument.Names.Name

最新更新