【发布时间】:2013-03-02 20:55:28
【问题描述】:
我正在寻找一种将 XML-Object 转换为字符串的方法。
Powershell 中有没有类似 $xml.toString() 的方法?
【问题讨论】:
标签: xml string powershell converter
我正在寻找一种将 XML-Object 转换为字符串的方法。
Powershell 中有没有类似 $xml.toString() 的方法?
【问题讨论】:
标签: xml string powershell converter
您可能正在寻找OuterXml。
$xml.OuterXml 应该给你你想要的。
【讨论】:
$xml.PreserveWhiteSpace = $true
您是如何创建 XML 对象的?
通常,如果您想要一个对象的 XML 字符串,您会使用:
$object | ConvertTo-Xml -As String
【讨论】:
试试这个:
[string[]]$text = $doc.OuterXml #or use Get-Content to read an XML File
$data = New-Object System.Collections.ArrayList
[void] $data.Add($text -join "`n")
$tmpDoc = New-Object System.Xml.XmlDataDocument
$tmpDoc.LoadXml($data -join "`n")
$sw = New-Object System.IO.StringWriter
$writer = New-Object System.Xml.XmlTextWriter($sw)
$writer.Formatting = [System.Xml.Formatting]::Indented
$tmpDoc.WriteContentTo($writer)
$sw.ToString()
我使用此脚本将生成的 XML 写入 Windows 窗体中的文本框。
【讨论】:
更简单的版本:
[string]$outputString = $XmlObject.childNode.childNode.theElementValueIWant.ToString()
Xml 路径是来自$XmlObject 的任何源 XML 树结构。
所以如果你的$XmlObject 是:
<xmlRoot>
<firstLevel>
<secondLevel>
<iWantThisValue>THE STRING I SEEK</iWantThisValue>
</secondLevel>
</firstLevel>
</xmlRoot>
你会使用:
[string]$outputString = $XmlObject.firstLevel.secondLevel.iWantThisValue.ToString()
【讨论】: