我正在寻找一种将 XML-Object 转换为字符串的方法。
Powershell 中是否有类似 $xml.toString() 的方法?
我正在寻找一种将 XML-Object 转换为字符串的方法。
Powershell 中是否有类似 $xml.toString() 的方法?
您可能正在寻找OuterXml
.
$xml.OuterXml
应该给你你想要的。
您是如何创建 XML 对象的?
通常,如果您想要来自对象的 XML 字符串,您可以使用:
$object | ConvertTo-Xml -As String
Try this:
[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()
I used this script to write my generated XML into a TextBox in Windows Forms.
一个更简单的版本:
[string]$outputString = $XmlObject.childNode.childNode.theElementValueIWant.ToString()
XML 路径是您的源 XML 树结构来自$XmlObject
.
所以如果你$XmlObject
是:
<xmlRoot>
<firstLevel>
<secondLevel>
<iWantThisValue>THE STRING I SEEK</iWantThisValue>
</secondLevel>
</firstLevel>
</xmlRoot>
你会使用:
[string]$outputString = $XmlObject.firstLevel.secondLevel.iWantThisValue.ToString()