Powershell - 我如何从XML文件中读取元素

时间:2015-03-08 17:52:00

标签: xml powershell

我有这个XML Dokument

<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
<channel>
<title>ps read XML File</title>
<description>Some Text</description>
<item>
<title>Element One</title>
<description>Some Text to Element ONE</description>
<guid>http://dlbmodigital.microsoft.com/webcasts/wmv/23976_Dnl_L.wmv</guid>
</item>
<item>
<title>Element Two</title>
<description>Some Text to Element TWO</description>
<guid>http://dlbmodigital.microsoft.com/webcasts/wmv/23977_Dnl_L.wmv</guid>
</item>
<item>
<title>Element Three</title>
<description>Some Text to Element Three</description>
<guid>http://dlbmodigital.microsoft.com/webcasts/wmv/23978_Dnl_L.wmv</guid>
</item>
</channel>
</rss>

我喜欢从元素&#34; guid&#34;中获取价值。但我不知道该怎么做。

使用此代码

"[xml]$xmldata = Get-Content -path C:\tmp\ps\test-ps.xml
$xmldata.rss.channel.item"

我看到三个&#34;项目&#34;元素。但我不知道如何从元素&#34; guid&#34;中捕获价值(超链接)。

2 个答案:

答案 0 :(得分:0)

您可以通过简单地引用它们来迭代所有孩子:

$xmldata.rss.channel.item.guid

但是,您没有为他们获得自动完成功能。 (这只是偶然发生在&#39; item&#39;因为这也是一个功能。)

答案 1 :(得分:0)

如果你想要所有guid-elements,那么你可以像这样使用xpath:

$xmldata.SelectNodes('//guid') | Select-Object -ExpandProperty "#text"

http://dlbmodigital.microsoft.com/webcasts/wmv/23976_Dnl_L.wmv
http://dlbmodigital.microsoft.com/webcasts/wmv/23977_Dnl_L.wmv
http://dlbmodigital.microsoft.com/webcasts/wmv/23978_Dnl_L.wmv