【发布时间】:2009-11-13 20:02:21
【问题描述】:
也许有人可以帮助我。我需要两种方法。
首先应该打开一个 xml 文件并使用给定参数获取所有节点,即:
XML 文件(file.xml):
<Menu id="1" Name="myMenu">
<MenuItem Header="Header 1" Name="header1" />
<MenuItem Header="Header 2" Name="header2">
<MenuItem Header="subHeader 2.1" Name="header2_1">
<MenuItem Header="subsubHeader 2.1.1" Name="header2_1_1" />
</MenuItem>
</MenuItem>
<MenuItem Header="Header 3" Name="header3" />
</Menu>
所以,现在我需要使用这样的方法从 xml 中获取值:
public static List<string, string>ReadXML(string filename, string node, string[] attributes, bool searchSubNodes);
调用方法示例:ReadXMLValues("file.xml", "MenuItem", new string[] {"Header", "Name"}, true);
这将返回一个包含两个字符串的列表,例如:
"Header 1", "header1"
"Header 2", "header2"
"subHeader 2.1", "header2_1" <-- this should be in the list only if searchSubNodes is enabled!
"subsubHeader 2.1.1", "header2_1_1" <-- the same for this one!!!
"Header 3", "header3"
这是阅读部分,现在是写作部分:
文件名与上面的file.xml 相同。 public static void WriteXML(string filename, string node, List attributes);
现在让我们说 file.xml 有这样的空头属性:
<Menu id="1" Name="myMenu">
<MenuItem Header="" Name="header1" />
<MenuItem Header="" Name="header2">
我需要将值放入标题中,最终结果应如下所示:
<Menu id="1" Name="myMenu">
<MenuItem Header="Header 1" Name="header1" />
<MenuItem Header="Header 2" Name="header2">
这样的事情可能吗??? C# 大师和其他知道如何做到这一点的人请帮助我!我不知道该怎么做。
最好的问候!
【问题讨论】:
-
我正在做一个项目并且不掌握 XPath。
-
编辑了我的答案以展示如何使用 XPath(在 C# 中)选择所需的节点。