有没有办法将一个以上的属性添加到特定的XML ELement usng c#的XMLWrite?

时间:2016-12-08 00:51:30

标签: c# xml xml-parsing xmlwriter

我正在尝试使用c#的XML编写器以编程方式添加元素,并且一切都运行良好。我目前有这个:

<module_name path="pathToModule"></module_name>

我正在尝试获得这样的结构:

<module_name path="pathToModule" name="nameOfModule", executable="moduleExecutale"></module_name>

我的XMLWriter看起来像这样:

var xmlWriterSettings = new XmlWriterSettings()
{
   Indent = true,
   IndentChars = "\t",
   NewLineOnAttributes = true
};
using (XmlWriter writer = XmlWriter.Create(_pathToOutputXml, xmlWriterSettings))
{
    writer.WriteStartElement("module_name", "name", realModuleName);

}

我也试过

writer.WriteStartElement("module_name", "name", realModuleName);
writer.WriteAttributeString("path", path, "executable", executable);

并且它不会编译过去。 “文件”中的名称字符无效。 “:”字符(十六进制值)不能包含在名称中。我想这是错误的做法,但我没有看到另一种选择。

我可以使用哪些XMLWriter属性来实现此目标?

1 个答案:

答案 0 :(得分:0)

我明白了。事实证明,如果我想向某个元素添加属性,我需要做这样的事情:

writer.WriteStartElement("module_name");
writer.WriteAttributeString("name", realModuleName);
writer.WriteAttributeString("path", path); 
writer.WriteAttributeString("executable", executable);

这会产生如下元素:

<module_name name="Captiva Administrator" path="" executable="test.exe">