我有一个XML文件,如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<INITIAL>
<FB1>a</FB1>
<FB2>b</FB2>
<FB3>c</FB3>
<FB4>d</FB4>
<FB5>e</FB5>
<FB6>f</FB6>
<FB7>g</FB7>
<FB8>h</FB8>
<FB9>i</FB9>
</INITIAL>
我只想读取元素a并将其转换为字符串,就像这样:
abcdefghi
答案 0 :(得分:0)
首先要从中创建一个System.Xml.XmlDocument。这是一个示例:
$theXml = [xml](gc $xmlPath)
$theXml.GetType().fullname
一旦有了它,您就可以按照自己的方式玩! -在您的示例中,您需要串联子元素的值。您会在网上找到很多示例,如何连接数组中的字符串值-example
$theXml.INITIAL.GetEnumerator() # this gives you enumeration of values in children to the 'INITIAL' element.
我希望这会有所帮助。
编辑:是的,您的xml损坏了-我假设它为所有添加了</FB1>
之类的结束标记。
答案 1 :(得分:0)
您可以使用XPath表达式获取所需的节点,然后使用-join
运算符将字符串连接在一起。
XPath表达式/INITIAL/*
表示顶层INITIAL
元素内的每个元素。如果以后有人决定以某种方式扩展数据格式,请谨慎选择您真正想要的数据将为您提供帮助。
PS> $Data = New-Object Xml
PS> $Data.Load((Resolve-Path file.xml))
PS> $Data.SelectNodes("/INITIAL/*")."#text" -join ""
frfsftfufvfwfhgKfg
在Windows 10上使用Windows PowerShell 5.1进行了测试。