gpt4 book ai didi

c# Elements of elements 使用 XElement

转载 作者:数据小太阳 更新时间:2023-10-29 02:23:27 25 4
gpt4 key购买 nike

不确定我应该怎么做。

这是我正在使用的 XML:

<configuration>
<tag1>
<interestingstuff>avalue</interestingstuff>
</tag1>

<tag2>
<item_type1 name="foo">
<item_type2 name="bar">
<property>value1</property>
<property>value2</property>
</item_type2>
<item_type2 name="pub">
<property>valueX</property>
<property>valyeY</property>
</item_type2>
<item_type1>

<item_type1 name="foo2">
<item_type2 name="pub">
<property>valueX</property>
</item_type2>
</item_type1>
</tag2>
</configuration>

我正在编写一个函数来传递 item_type 和 item_type2 的值,并返回该组合的属性值列表。

这是我的。它会在指出的位置抛出“对象未设置为对象的实例”异常。

ArrayList properties = new ArrayList();
XDocument config = new XDocument();
config = XDocument.Parse(XML_Text);
foreach (XElement item1 in config.Root.Element("tag2").Nodes())
{
if (item1.Attribute("name").Value.ToString() == passed_item1_value)
{
//this is where it's breaking
foreach (XElement item2 in item1.Elements("item_type2").Nodes())
{
if item2.Attribute("name").Value.ToString() == passed_item2_value)
{
foreach (XElement property in item2.Elements("property").Nodes())
{
properties.Add(property.Value.ToString());
}
break;
}
}
break;
}
}

我知道这没有意义 - 但我无法让它变得有意义。

最佳答案

我会这样做:

public IEnumerable<string> findValues(string item1, string item2)
{
config = XDocument.Parse(XML_Text)
var res = config.Descendants("item_type1")
.Where(x=>x.Attribute("name").Value == item1)
.Descendants("item_type2")
.Where(x=>x.Attribute("name").Value == item2);
return res.Descendants("property").Select(x=>x.Value);
}

关于c# Elements of elements 使用 XElement,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41846349/

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