我需要使用System.XML
注释和取消注释XML节点及其子节点。
开始XML:
<?xml version="1.0" encoding="utf-8"?>
<test>
<!--comment...-->
<childTest>
<childchildTest>5<childchildTest/>
</childTest>
</test>
注释整个节点将不是问题,并且很容易实现,例如example。但是我的问题是,我已经在节点中添加了一些注释,并且每个XML规则都不允许嵌套注释。
这意味着我将不得不逐行注释掉XML文件,这样就不会破坏带有嵌套注释的XML文件结构。
所需的输出:
<?xml version="1.0" encoding="utf-8"?>
<!-- <test> -->
<!--comment...-->
<!-- <childTest> -->
<!-- <childchildTest>5<childchildTest/> -->
<!-- </childTest> -->
<!-- </test> -->
是否可以使用System.XML实现此功能,还是我必须使用正则表达式来做到这一点?
答案 0 :(得分:3)
假设您将此XML妥善组织在一个文件中(这意味着每个节点都在自己的行上,如您所介绍的那样),则可以使用以下这种形式:
File.WriteAllLines("path to new XML file", File.ReadAllLines("path to XML file").Select(line => line.Trim().StartsWith("<!--") ? line : $"<!--{line}-->"));
这部分line.Trim().StartWith("<!--") ? line : $"<!--{line}-->"
表示如果line
是注释(以<!--
开头),则不要对其进行注释,否则,请这样做。
答案 1 :(得分:1)
我认为,没有提供此功能的框架方法。 您可以阅读XML文件行,然后创建包含每行注释的新文件,如下面的代码所示。
notifyItemChanged()