我有一个看起来像这样的一个非常基本的XML文件:价值XML根元素是完全错误的,没有找到子节点
<allData>
<allDataDetails>
<quoteid>ABC123</quoteid>
<customername>John Smith</customername>
</allDataDetails>
<allDataDetails>
<quoteid>DEF456</quoteid>
<customername>Jane Doe</customername>
</allDataDetails>
</allData>
我的XSD指定至少1 allDataDetails元素必须存在。文档验证正确。
虽然使用Linq查询XML时,我似乎无法识别或查询allData中的内部元素。相反,当我在调试器中查看时,Value属性是所有数据连接的。它看起来像这样:
ABC123John SmithDEF456Jane Doe
这是我的查询代码。 myRows总是为空,因为我似乎无法得到后代:
XDocument entityXml = XDocument.Parse(myDataString);
var myRows = from d in entityXml.Descendants("allDataDetails")
select new
{
quoteid = d.Element("quoteid").Value,
customername = d.Element("customername").Value
};
任何人都知道这里有什么可能是错的?
很奇怪的是,你的XSD验证了这个 - ''标签没有正确关闭.....结束标签为'',它们与开标签不匹配..... –
2011-12-27 21:34:50
但是当XML被修正了,'select new {}'中两个赋值之间缺失的逗号也是固定的 - 结果似乎是确定的。正确选择两个节点并提取正确的数据 - 到底什么是你的问题?!?!?!?! – 2011-12-27 21:36:24
错别字由最后一个人留下来编辑我的原始条目。 – 2011-12-27 21:45:08