在 C# 中使用 XDocument 创建 XML 文件
我有一个 List
“sampleList”,其中包含
Data1
Data2
Data3...
文件结构,就像
<file>
<name filename="sample"/>
<date modified =" "/>
<info>
<data value="Data1"/>
<data value="Data2"/>
<data value="Data3"/>
</info>
</file>
我当前正在使用 XmlDocument 来执行此操作。
示例:
List<string> lst;
XmlDocument XD = new XmlDocument();
XmlElement root = XD.CreateElement("file");
XmlElement nm = XD.CreateElement("name");
nm.SetAttribute("filename", "Sample");
root.AppendChild(nm);
XmlElement date = XD.CreateElement("date");
date.SetAttribute("modified", DateTime.Now.ToString());
root.AppendChild(date);
XmlElement info = XD.CreateElement("info");
for (int i = 0; i < lst.Count; i++)
{
XmlElement da = XD.CreateElement("data");
da.SetAttribute("value",lst[i]);
info.AppendChild(da);
}
root.AppendChild(info);
XD.AppendChild(root);
XD.Save("Sample.xml");
如何使用 XDocument 创建相同的 XML 结构?
I have a List<string>
"sampleList" which contains
Data1
Data2
Data3...
The file structure is like
<file>
<name filename="sample"/>
<date modified =" "/>
<info>
<data value="Data1"/>
<data value="Data2"/>
<data value="Data3"/>
</info>
</file>
I'm currently using XmlDocument to do this.
Example:
List<string> lst;
XmlDocument XD = new XmlDocument();
XmlElement root = XD.CreateElement("file");
XmlElement nm = XD.CreateElement("name");
nm.SetAttribute("filename", "Sample");
root.AppendChild(nm);
XmlElement date = XD.CreateElement("date");
date.SetAttribute("modified", DateTime.Now.ToString());
root.AppendChild(date);
XmlElement info = XD.CreateElement("info");
for (int i = 0; i < lst.Count; i++)
{
XmlElement da = XD.CreateElement("data");
da.SetAttribute("value",lst[i]);
info.AppendChild(da);
}
root.AppendChild(info);
XD.AppendChild(root);
XD.Save("Sample.xml");
How can I create the same XML structure using XDocument?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
LINQ to XML 通过三个功能使这一过程变得更加简单:
所以这里你可以这样做:
我特意使用了这个代码布局,使代码本身反映文档的结构。
如果您想要一个包含文本节点的元素,您可以通过将文本作为另一个构造函数参数传递来构造它:
LINQ to XML allows this to be much simpler, through three features:
So here you can just do:
I've used this code layout deliberately to make the code itself reflect the structure of the document.
If you want an element that contains a text node, you can construct that just by passing in the text as another constructor argument:
使用 .Save 方法意味着输出将具有 BOM,但并非所有应用程序都会对此感到满意。
如果您不需要 BOM,并且您不确定,那么我建议您不要,然后通过 writer 传递 XDocument:
Using the .Save method means that the output will have a BOM, which not all applications will be happy with.
If you do not want a BOM, and if you are not sure then I suggest that you don't, then pass the XDocument through a writer: