我正在处理一堆VOD元数据文件(XML)。有一个ADI.DTD定义了我的xml架构。
我正在尝试使用powershell编辑此xml并使用以下的PowerShell代码更新/更改标记...
[System.Xml.XmlDocument]$doc =
new-object System.Xml.XmlDocument;
$doc.Load($strXMLFile);
$root = $doc.get_DocumentElement();
$root.Fruit.Metadata.AMS.Name = $strName
$doc.Save($strXMLFile)
虽然它几乎一样,但我也试过......
$xmlDoc = [XML](gc $strXMLFile)
$xmldoc.Fruit.Metadata.AMS.Name = $strName
$xmldoc.Save($strXMLFile)
此保存的变化超过了我想要的标签。它正在删除几个回车并将这个奇怪的[]附加到我的DOCTYPE ..我不明白为什么它这样做并且不知道对使用这个XML的系统的下行影响。
<!DOCTYPE ADI SYSTEM "ADI.DTD">
到
<!DOCTYPE ADI SYSTEM "ADI.DTD"[]>
赞赏任何输入
答案 0 :(得分:1)
要保留回车,请在保存之前设置此属性:
$xmlDoc.PreserveWhitespace = $true
方括号是有效的XML,不应有任何负面影响。看到这个问题:
XmlDocument.Save() inserts empty square brackets in doctype declaration