【问题标题】:I want to edit xml file我想编辑xml文件
【发布时间】:2010-11-17 19:42:32
【问题描述】:

我修改了d xml文件的结构。我想编辑可见的值

【问题讨论】:

  • 您需要使用示例 XML 扩展此问题(更改前后)以获得体面的答案
  • 提供的示例 XML 无效。标签 c 和 d 没有右大括号。
  • @Scott - 第二个'b'也没有
  • 这是一个结构示例,问题是我无法将属性值从 aaa 编辑为 bb
  • @user428747:这不是有效 XML 文件的示例,因此很难判断 正确 文件是什么样子。

标签: c# asp.net xml xmlreader xmltextwriter


【解决方案1】:

嗯,LINQ to XML 使得操作 XML 文档变得非常容易,前提是它们足够小,可以合理地加载到内存中。

例如:

var doc = XDocument.Load("Foo.xml");
foreach (var element in doc.Descendants("c"))
{
    element.SetAttributeValue("value", "bb");
}
doc.Save("Bar.xml");

现在将为每个 c 元素设置value 属性。目前尚不清楚这是否是您想要的。如果不是,请编辑您的问题以使其更具体。

【讨论】:

  • 实际上要使其工作(“SetAttribute”不存在),请使用该代码: element.SetAttributeValue("value", "bb");
  • 难以置信,我发现了 Jon Skeet 的错误 :)
【解决方案2】:

你可以使用这样的代码模式:

bool foobar()
    {
        XmlDocument doc = new XmlDocument();
        try
        {
            doc.Load(FileName);
            XmlNodeList ns = doc.SelectNodes("a/d/e/f");
            if (ns.Count == 1)
            {

                    ns[0].Attributes["visible"].Value = true;
                    doc.Save(FileName);
                    return (true);
            }
            else
                return (false);
        }
        catch (Exception e)
        {
            return (false);
        }
    }

【讨论】:

  • 使用真/假而不是异常是在 .NET 中指示成功或失败的一种高度非惯用(且有损)的方式。例外是有原因的 - 使用它们!
  • 你的意思是我应该为父代码填充异常吗?那么在这种情况下的表现呢?
猜你喜欢
  • 2011-09-23
  • 1970-01-01
  • 2019-03-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多