c# - .NET 在使用 XmlTextReader 找到特定的 XML 节点后对其进行编辑

标签 c# xml

需要编辑 XML 文件中的某些节点。

我用 XmlTextReader 收集了它们。如果遇到 Remark 节点,我会跳到下一个节点。如果我遇到其他指定的节点并且它们不是以特定模式开始的,我会将它们放在一个集合中。

List<KeyValuePair<string, string>> Data = new List<KeyValuePair<string, string>>();
string key = "";
string value = "";
reader = new XmlTextReader(file);

switch (reader.NodeType)
{
    case XmlNodeType.Element:
        switch (reader.Name)
        {
            case "Remark":
                reader.Skip();
                break;
            case "DataTableColumn":
            case "Label":
            case "Button":
            case "PopupPanel":
                while (reader.MoveToNextAttribute())
                {
                    switch (reader.Name)
                    {
                        case "ID":
                            key = reader.Value;
                            break;
                        case "Header":
                        case "Caption":
                            value = reader.Value;
                            break;
                    }
                }
                if (!value.StartsWith("@"))
                {
                    Data.Add(new KeyValuePair<string, string>(key, value));
                }
                break;
        }
        break;
}

现在我已经修改了集合中所有项目的值,我想更新原始文件。执行此操作的最佳方法是什么?

最佳答案

您有什么理由不为此使用 XSLT 吗?这似乎是执行此操作的最合适的技术。

关于c# - .NET 在使用 XmlTextReader 找到特定的 XML 节点后对其进行编辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4616489/

相关文章:

c# - 将 Linq-To-SQL 列表导入 MongoDB

javascript - 使用 ajax 回调将数据源绑定(bind)到 Controller 时,数据未显示在 Kendo Grid 上

c# - 后台 worker 不工作

c# - 带有文本框的 ASP.NET 动态 ASP 表 - 在 ViewState 中保存值

xml - 我的 SCORM 1.2 先决条件的有效文本节点值是多少?

c# - 如何使用脚本更改 Unity UI 中的占位符文本?

java - 如何将Java对象转换为XML字符串,反过来将XML转换为Java对象?

android - 摆脱启动时的白屏

asp.net - DataSet.GetXml 不返回空结果

java - 取消选择 ListView 中的项目