gpt4 book ai didi

c# - 无法获取元素

转载 作者:行者123 更新时间:2023-11-30 22:27:26 25 4
gpt4 key购买 nike

我的 .XML 数据库如下所示:

<root>
<Lemma>
<Lemma.LemmaSign>cat</Lemma.LemmaSign>
<Lemma.PartOfSpeech>(noun)</Lemma.PartOfSpeech>
<Lemma.UsageLabel>(kt)</Lemma.UsageLabel>
<Sense>
<TE>
<TE.TE> animal</TE.TE>
</TE>
<Pronunciation>/
<Pronunciation.Pronunciation>[coot]</Pronunciation.Pronunciation>/
</Pronunciation>
:
<Example>
<Example.Example> it's a cat</Example.Example>
<Example.Translation> it's animal</Example.Translation>
|
</Example>
</Sense>
</Lemma>
</root>

这是我的代码:

var elements = XElement.Load("objects.xml");
var query1 = from query in elements.Descendants("Lemma")
let null_LemmaSign = query.Element("Lemma.LemmaSign")
let null_TE = query.Element("TE.TE")
where wyszuk == query.Element("Lemma.LemmaSign").Value
select new
{
word = null_LemmaSign == null ? "none" : null_LemmaSign.Value,
te = null_TE == null ? "none" : null_TE.Value,
};

foreach (var e in query1)
{
MessageBox.Show(e.word.ToString() + " - " + e.te.ToString());
}

问题是输出看起来像:猫 - 没有应该是猫 - 动物

如何从我的 .xml 中获取 TE.TE?

最佳答案

您的代码假定 <TE.TE><Lemma> 的直系子代,事实并非如此。相反,<TE.TE><TE> 的 child ,它是 <Sense> 的 child ,它是 <Lemma> 的 child .您的代码应该像这样进行调整:

let null_TE = query.Element("Sense").Element("TE").Element("TE.TE")

为简单起见,您可以按照 jimmy_keen 的建议,使用 Descendants :

let null_TE = query.Descendants("TE.TE").FirstOrDefault()

关于c# - 无法获取元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11274637/

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