1

我正在处理一堆 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"[]>

任何输入表示赞赏

4

1 回答 1

1

要保留回车,请尝试在保存之前设置此属性:

$xmlDoc.PreserveWhitespace = $true

方括号是有效的 XML,不应该有任何负面影响。看到这个问题:

XmlDocument.Save() 在 doctype 声明中插入空方括号

于 2012-05-18T18:46:34.737 回答