【发布时间】:2010-08-22 16:16:04
【问题描述】:
我有一个 XML 文件,其中值存储在用逗号分隔的类别元素中:
<Company>
<name>Test</name>
<category>Power,Water,Gas</category>
</Company>
<Company>
<name>Test2</name>
<category>Water,Gas</category>
</Company>
在其他 XML 文件中,类别元素中只存储一个值:
<Bills>
<name>Test</name>
<category>Power</category>
</Bills>
<Bills>
<name>Test2</name>
<category>Water</category>
</Bills>
所以现在我需要加入这两个 xml 文件并从 Bills 节点获取包含类别值的所有 Company 节点。
我有这个问题:
Xdocument fRoot = XDocument.Load("company.xml");
Xdocument rRoot = XDocument.Load("bills.xml");
var query = from f in fRoot.Elements("Company")
join r in rRoot.Elements("Bills")
on (string)f.Element("category").Value equals (string)r.Element("category").Value
orderby(string)f.Element("name").Value
select new{...}
这样我什么也得不到,因为公司节点类别值以逗号分隔存储,我不知道如何拆分它们以在这两个文件上执行 JOIN。
谢谢。
【问题讨论】:
-
您的问题含糊不清。加入文件的真正含义是什么?您想合并它们并生成单独的条目吗?澄清您的问题的最佳方法是对其进行编辑并包含您预期输出的示例,然后人们将能够为您提供帮助。
-
顺便说一句,您不需要将
XElement.Value转换为字符串,因为它是一个字符串。
标签: c# linq-to-xml