Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
$xml.CreateElement和空节点的表示形式_Xml_Powershell - Fatal编程技术网

$xml.CreateElement和空节点的表示形式

$xml.CreateElement和空节点的表示形式,xml,powershell,Xml,Powershell,在创建新的XML文件时,我使用了 $settingNode = $xml.CreateElement('SettingNode') $rootNode.AppendChild($settingNode) > $null 它可以工作,但是当InnerXML为空时,XML中的结果节点使用速记方法 <SettingNode /> 这在技术上是可行的,但我正在创建这些XML文件,供人们剪切和粘贴数据,所以我更愿意这样做 <SettingNode></Setti

在创建新的XML文件时,我使用了

$settingNode = $xml.CreateElement('SettingNode')
$rootNode.AppendChild($settingNode) > $null
它可以工作,但是当InnerXML为空时,XML中的结果节点使用速记方法

<SettingNode />

这在技术上是可行的,但我正在创建这些XML文件,供人们剪切和粘贴数据,所以我更愿意这样做

<SettingNode></SettingNode>

因此,用户无需任何额外的工作就可以进行粘贴。
也就是说,我找不到任何用于更改节点显示方式的标志。我是缺少了什么,还是仅限于默认表示,需要复制种子XML文件而不是以编程方式创建它们?

我建议向
元素添加注释:

$settingNode=$xml.CreateElement('settingNode'))
$comment=$xml.CreateComment('在此处插入数据')
$settingNode.AppendChild($comment)>$null
$rootNode.AppendChild($settingNode)>$null
这会给你一个这样的结果:



Hmm。出于许多原因,单线方法是首选方法,但我可能会同时采用这两种方法,并在一段时间内同时使用这两种方法。我已经有一些其他的种子文件被复制了,所以在上面扩展并不是特别有问题。有点糟糕,没有一个参数可以强制输出到三种表示形式中的任何一种。我认为使用
XmlDocument
对象方法无法做到这一点。不过应该行得通。啊哈。另一种实现XML的方法!我也来看看。特别是如果速度更快,我可能会想重构一些速度慢得令人恼火的代码。