如何读取xml文件并将其内容写入纯文本文件?

时间:2010-03-15 18:42:30

标签: xml powershell

如何阅读以下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

2 个答案:

答案 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的好文章。