C# 这样创建XML是否正确:
我想在运行时创建如下内容:C# 这样创建XML是否正确:,c#,dom,xmldocument,C#,Dom,Xmldocument,我想在运行时创建如下内容: <CWS> <Case name="10-040-00022"> <CaseDetailsSet> <CaseDetail title="Patient name" /> <CaseDetail title="Date of birth" /> </CaseDetailsSet> </Case> <
<CWS>
<Case name="10-040-00022">
<CaseDetailsSet>
<CaseDetail title="Patient name" />
<CaseDetail title="Date of birth" />
</CaseDetailsSet>
</Case>
</CWS>
请看一看,告诉我,如果我做错了什么,请根据我编写的代码创建上面的结构
非常感谢。我认为您的代码没有问题。如果它创建了您想要的xml,那么应该可以。创建xml文档有许多不同的方法,您的方法似乎还可以。我认为您的代码没有问题。如果它创建了您想要的xml,那么应该可以。创建xml文档有很多不同的方法,您的方法似乎还可以。两件事:
XmlDocument doc = new XmlDocument();
XmlElement root = doc.CreateElement("CWS");
doc.AppendChild(root); // Append the root element to the XmlDocument
XmlElement singleCase = doc.CreateElement("Case");
root.AppendChild(singleCase);
singleCase.SetAttribute("name", "10-040-00022");
XmlElement CaseDetailsSet = doc.CreateElement("CaseDetailsSet");
singleCase.AppendChild(CaseDetailsSet);
XmlElement CaseDetail = doc.CreateElement("CaseDetail");
CaseDetailsSet.AppendChild(CaseDetail);
CaseDetail.SetAttribute("title", "Patient Name");
// add the second case detail
XmlElement CaseDetailDateOfBirth = doc.CreateElement("CaseDetail");
CaseDetailsSet.AppendChild(CaseDetailDateOfBirth);
CaseDetailDateOfBirth.SetAttribute("title", "Date of birth");
XmlDocument doc = new XmlDocument();
XmlElement root = doc.CreateElement("CWS");
doc.AppendChild(root); // Append the root element to the XmlDocument
XmlElement singleCase = doc.CreateElement("Case");
root.AppendChild(singleCase);
singleCase.SetAttribute("name", "10-040-00022");
XmlElement CaseDetailsSet = doc.CreateElement("CaseDetailsSet");
singleCase.AppendChild(CaseDetailsSet);
XmlElement CaseDetail = doc.CreateElement("CaseDetail");
CaseDetailsSet.AppendChild(CaseDetail);
CaseDetail.SetAttribute("title", "Patient Name");
// add the second case detail
XmlElement CaseDetailDateOfBirth = doc.CreateElement("CaseDetail");
CaseDetailsSet.AppendChild(CaseDetailDateOfBirth);
CaseDetailDateOfBirth.SetAttribute("title", "Date of birth");
我只是想展示一下如何使用LINQtoXML实现这一点
XElement doc = new XElement("CWS",
new XElement("Case",
new XAttribute("name", "10-040-00022"),
new XElement("CaseDetailSet",
new XElement("CaseDetail",
new XAttribute("title", "Patient name")),
new XElement("CaseDetail",
new XAttribute("title", "Date of birth")))));
我只是想展示一下如何使用LINQtoXML实现这一点
XElement doc = new XElement("CWS",
new XElement("Case",
new XAttribute("name", "10-040-00022"),
new XElement("CaseDetailSet",
new XElement("CaseDetail",
new XAttribute("title", "Patient name")),
new XElement("CaseDetail",
new XAttribute("title", "Date of birth")))));
代码是否没有编写您期望的文档?或者您正在寻找最佳实践建议?您可能想查看Linq to XML。创建XML要容易得多,如果需要的话,还可以获得Linq的好处。@juharr-我能忍受这些DOM类这么长时间真是个奇迹。@Brabster:我希望它能工作,但我还没有做足够的研究来了解如何将它写入磁盘,看看它是否符合我的要求。是的,我正在寻找这方面的最佳实践建议well@juharr:你的建议的学习曲线如何才能达到我的目标?这是一个截止日期为今天结束的项目:D。。你知道:代码不是在写你期望的文档吗?或者您正在寻找最佳实践建议?您可能想查看Linq to XML。创建XML要容易得多,如果需要的话,还可以获得Linq的好处。@juharr-我能忍受这些DOM类这么长时间真是个奇迹。@Brabster:我希望它能工作,但我还没有做足够的研究来了解如何将它写入磁盘,看看它是否符合我的要求。是的,我正在寻找这方面的最佳实践建议well@juharr:你的建议的学习曲线如何才能达到我的目标?这是一个截止日期为今天结束的项目:D。。您知道:要将其保存到磁盘,请使用doc.save(@“c:\case.xml”);谢谢,先生,我太担心根了,如果我做错了,我会觉得有点不舒服。谢谢,所以我们不需要在代码中的任何地方使用XMLNode?这就是Intrest,使用XMLElement创建所有内容并为其设置正确的父级正在执行此任务。。。很好……@ChaosPandion:同意。我所做的只是指出代码的问题;谢谢,先生,我太担心根了,如果我做错了,我会觉得有点不舒服。谢谢,所以我们不需要在代码中的任何地方使用XMLNode?这就是Intrest,使用XMLElement创建所有内容并为其设置正确的父级正在执行此任务。。。很好……@ChaosPandion:同意。我只想指出代码的问题。非常感谢。这有助于了解我需要了解的信息。再次感谢,哇。。。这个LINQ真是太酷了。非常感谢你。这有助于了解我需要了解的信息。再次感谢,哇。。。这个LINQ很酷。