2010-11-17 100 views
0

alt text我想编辑XML文件

我已经修改d XML文件的结构。我想编辑可见的值

+1

你需要扩大与示例XML(前和变更后)这个问题得到一个体面的答案 – 2010-11-17 19:44:16

+2

示例XML提供无效。标签c和d没有右大括号。 – 2010-11-17 19:49:45

+0

@Scott - 也不是第二个'b' – KevinDTimm 2010-11-17 19:52:37

回答

1

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

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); 
     } 
    } 
+0

使用true/false代替异常是一种高度非惯用(有损)的指示.NET成功或失败的方式。例外是有原因的 - 使用它们! – 2010-11-18 10:23:59

+0

你的意思是我应该将异常填充到父代码中?在这种情况下的表现如何? – texnedo 2010-11-19 08:05:50

6

那么,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属性。目前尚不清楚这是否是你想要的。如果不是,请编辑您的问题以使其更具体。

+0

圣逍遥,蝙蝠侠! +1 – karlgrz 2010-11-17 20:02:49

+0

实际上,它的工作(“SetAttribute”不存在),使用该代码:element.SetAttributeValue(“value”,“bb”); – SwissCoder 2010-11-23 15:03:05

+0

@SwissCoder:是的,是固定的。 – 2010-11-23 15:04:04