我正在学习PowerShell.我可以将xml文件加载到变量中并对其进行操作.然后我可以调用对象的save方法来保存到磁盘.我希望有一种方法可以将生成的xml输出到屏幕.我好像找不到一个.有没有办法,除了输出到文件然后文件到屏幕?
sam*_*pin 41
我无法让社区扩展工作,我真的不想安装额外的东西.我在微软博客上找到了另一种方法 -
function WriteXmlToScreen ([xml]$xml)
{
$StringWriter = New-Object System.IO.StringWriter;
$XmlWriter = New-Object System.Xml.XmlTextWriter $StringWriter;
$XmlWriter.Formatting = "indented";
$xml.WriteTo($XmlWriter);
$XmlWriter.Flush();
$StringWriter.Flush();
Write-Output $StringWriter.ToString();
}
$xml = [xml]'<root><so><user name="john">thats me</user><user name="jane">do you like her?</user></so></root>'
WriteXmlToScreen $xml
Run Code Online (Sandbox Code Playgroud)
Emi*_*ggi 20
我知道的唯一方法是使用或等System.Xml
属性.只要源是,这些属性应该已经缩进代码.outerxml
innerxml
[System.Xml.Linq.XDocument]::Parse($Xml.OuterXml).ToString()
Run Code Online (Sandbox Code Playgroud)
看看PSCX 模块。你会找到Format-Xml
cmdlet 正是这样做的。
例子:
Import-Module pscx
$xml = [xml]'<root><so><user name="john">thats me</user><user name="jane">do you like her?</user></so></root>'
Format-Xml -InputObject $xml
Run Code Online (Sandbox Code Playgroud)
将产生:
<root>
<so>
<user name="john">thats me</user>
<user name="jane">do you like her?</user>
</so>
</root>
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请查看 help format-xml -full
归档时间: |
|
查看次数: |
33346 次 |
最近记录: |