【发布时间】:2013-09-11 06:35:56
【问题描述】:
我想在 c# 中将 List 转换为 xml 文档。
我的代码如下:
List<string> BugWSResponseList1 = new List<string>();
Logger.Write("\n\n" + DateTime.Now + " : " + " : START : Creation of a set of Bugs via bug.Add API");
BugWSResponseList1 = CreateBugs(FilePath_EXPRESS_API_BugAdd_CreateBugs_DataFile);
Logger.Write("\n\n" + DateTime.Now + " : " + " : END : Creation of a set of Bugs via bug.Add API");
我一直在尝试将列表响应转换为字符串,然后尝试将其转换为 xml 文档,但是当我解析它时,它显示 xml 中有多个根元素。
xml的格式如下:
<Bug>
<family>ESG</family>
<product>Dr.Watson</product>
<version>Xpress API</version>
<productarea>1</productarea>
<subarea></subarea>
<qe>sdawar</qe>
<duplicateId></duplicateId>
</Bug>
<Bug>
<family>TEST22</family>
<product>Dr.Watson</product>
<version>Xpress API</version>
<productarea>1</productarea>
<subarea></subarea>
<qe>sdawar</qe>
<duplicateId></duplicateId>
</Bug>
请注意,它在 xml 中有两个不同的节点。 到目前为止,我正在做的是将 List BugWSResponseList1 转换为字符串,然后将其加载为 xml。这是我正在做的代码:
XmlDocument xd = new XmlDocument();
string s = string.Join(",", BugWSResponseList2);
xd.LoadXml(s);
但是当我这样做时,它说 xml 中有多个根元素。
我想将 List BugWSResponseList1 转换为 xml 文档,因为我需要进一步解析它以执行代码。 任何帮助,将不胜感激。 谢谢
【问题讨论】:
-
xmlwriter,你的问题无法回答,怎么可能知道你的字符串是什么格式的?它们是有效的 xml 吗?需要解析吗?
-
请同时提供您的列表样本。
-
消息很清楚:
there are more than one root element in the xml.您的 xml 无效。 -
一个xml必须有一个且只有一个根元素(有点像Highlander)。在您的情况下,xml 可能看起来像
<Bugs><Bug>...</Bug><Bug>...</Bug></Bugs>- 另外,我假设BugWSResponseList2中的一个条目看起来像"<Bug>...</Bug>"。所以用","加入它们不能产生有效的xml。 -
我越来越觉得你没有完全理解 xml 的工作原理以及你应该如何使用它。例如,将节点作为字符串放入列表或您的其他问题中替换节点的值。我敦促您阅读Creating XML Trees,甚至可以从LINQ to XML Programming Guide 开始,并重新考虑您对整个事情的处理方式。
标签: c# xml tstringlist