我正在对XML文件进行操作,原始文件有很多注释,例如:
<!-- Type: This is a comment-->
现在,我需要修改此XML文件中的一些属性,我将其读为没有注释,例如:
XmlReaderSettings readerSettings = new XmlReaderSettings();
readerSettings.IgnoreComments = true;
XmlReader readers = XmlReader.Create(path, readerSettings);
现在,当我尝试修改此文件并将其保存回文件时,这些文件将删除注释,因为最初我没有注释地阅读了该文件。但是,如果要投入生产,要求是在文件中保留原始注释。最好的方法是什么?
现在,我可以传入两个带注释的引用,一个带不注释的引用,对不带注释的XML进行操作,并对带注释的XML进行修改。其他任何想法
编辑
<Node1 someattribute>
<childnode someattr1="value1" someattr2="Food" />
</Node1
<!-- Type: This is a comment1-->
<!-- Type: This is a comment2-->
<!-- Type: This is a comment3-->
<Node2 someattribute>
<childnode someattr1="value1" someattr2="Book" />
</Node2>
<!-- Type: This is a comment1-->
<!-- Type: This is a comment2-->
<!-- Type: This is a comment3-->
如果您看到我有Node1,有时我想直接跳到节点1,而不是XPATH,目前我正在使用:
node.PreviousSibling;
node.NextSibling;
因此,通过这种方式,我可以直接跳到下一个节点,也可以根据需要跳到上一个节点
答案 0 :(得分:-1)
您可以尝试以下一种方法:
XmlReader reader = XmlReader.Create("old.xml");
XmlWriter writer = XmlWriter.Create("new.xml");
while (reader.Read())
{
if (reader.NodeType != XmlNodeType.Comment)
{
// Do your stuff here!
}
writer.WriteNode(reader, true);
}
writer.Close();
reader.Close();