为什么修改XML后OuterXml不生成字符串值

时间:2016-08-19 14:09:50

标签: xml powershell

我有以下的Powershell代码,执行时$b4有一个字符串值,但是一旦我以任何方式修改DOM并尝试访问XmlDocument属性,例如OuterXml,我就没有任何价值$after

我认为这是某种类型的铸造问题,但我无法确定原因。

$xml = [xml]"<root></root>"
$comment = $xml.CreateComment("<!-- added from comment -->" )
$b4 = $xml.OuterXml #this has a value as expected
$xml.FirstChild.AppendChild($comment)
$after = $xml.OuterXml  #This is empty string or null

如何在修改DOM后获得$ xml的OuterXml值?

1 个答案:

答案 0 :(得分:1)

根据我的理解,您只需在创建评论时删除<!---->。像这样:

$xml = [xml]"<root></root>"

$comment = $xml.CreateComment("added from comment") #From here
$b4 = $xml.OuterXml #this has a value as expected

$xml.FirstChild.AppendChild($comment)
$after = $xml.OuterXml  #Not null