gpt4 book ai didi

c# - Linq to XML 连接

转载 作者:行者123 更新时间:2023-11-30 22:44:10 24 4
gpt4 key购买 nike

我有一个 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 节点获取包含类别值的所有公司节点。

我有这个问题:

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。

谢谢。

最佳答案

你可以尝试这样的事情:

var query = from f in fRoot.Elements("Company")
from r in rRoot.Elements("Bills")
where ((string)f.Element("category").Value).Split(',').Contains((string)r.Element("category").Value )
orderby(string)f.Element("name").Value
select new new{...};

关于c# - Linq to XML 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3542241/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com