如何阅读以下xml文件并将其内容写入纯文本文件?
<!--
<config>
<compare>
<source>d:\demo\</source>
<destination>e:\demo\</destination>
<parameters>
<parameter>FileName</parameter>
<parameter>Size</parameter>
<parameter>Date</parameter>
</parameters>
</compare>
<compare>
<source>d:\sample\</source>
<destination>e:\sample\</destination>
<parameters>
<parameter>Name</parameter>
<parameter>FullName</parameter>
<parameter>version</parameter>
<parameter>culture</parameter>
</parameters>
</compare>
</config>
-->
期望的输出:
d:\demo e:\demo FileName Size Date
d:\sample e:\sample Name FullName Version Culture
答案 0 :(得分:2)
好吧,你对XML的评论会引起一些解析问题 - 但是为了回答这个问题,我会假设它实际上并不存在于现实生活中。在PowerShell中处理XML的最简单方法是将其视为字符串,并将其强制转换为XML对象:
$xml = [xml](Get-Content c:\temp\config.xml)
现在你有了一个xml变量,你可以做很酷的事情:
$xml.config.compare.source
将把字符串“d:\ demo \”放在管道中,在这种情况下不会进行进一步处理并输出它。抓住其他元素应该非常简单,尽管多个参数标记的处理方式类似于数组:
$xml.config.compare.parameters.parameter[0]
编写输出可以像重定向输出一样简单:
$xml.config.compare.source >> c:\temp\output.txt
单个大于号将覆盖文件内容,双精度用于追加。
答案 1 :(得分:1)
This是一篇关于如何从PowerShell处理XML的好文章。