在我的Windows Phone 8 C#/ XAML .NET 4.5项目中,我正在尝试创建一个结构类似的XDocument:
<element1>
<subelement1>
</subelement1>
<subelement2>
...etc...
</subelement2>
</element1>
<element2>
<subelement1>
</subelement1>
<subelement2>
...etc...
</subelement2>
</element2>
创建文档的方法看起来像(为了问题目的而简化):
... createXML()
{
XDocument doc = new XDocument();
XElement elem1 = new XElement("element1");
elem1.Add(new XElement("subelement1"));
XElement elem2 = new XElement("element2");
doc.Add(elem1);
doc.Add(elem2);
}
但是我一直在说InvalidOperationException
说它会创建一个无效的文档结构。
我知道为什么 - 它会导致文档有多个“根节点” - 但我实际上需要它。
第三方完成的Web服务需要此结构,该文档将文档作为字符串接收。
所以问题是“如何实现这个结构?我应该使用其他一些XObject吗?”
(我知道最简单的解决方案可能就是使用XElements的集合......只是问问'是否有其他出于好奇的方式)
答案 0 :(得分:1)
您在帖子顶部指定的结构是非法的,因为有效的XML文档必须只有一个根元素;您的文档在顶层有两个元素,这是不允许的。
您可以通过在创建时添加根元素来解决此问题,然后在阅读文档时将其丢弃;
document = new XDocument(new XElement("root", elem1, elem2));