首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法获取元素

无法获取元素
EN

Stack Overflow用户
提问于 2012-06-30 21:58:38
回答 1查看 65关注 0票数 2

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

代码语言:javascript
复制
<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>

这就是我的代码:

代码语言:javascript
复制
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());
}

问题是输出看起来像是: cat - none,应该是cat - animal

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-30 22:05:03

您的代码假设<TE.TE><Lemma>的直接子级,但事实并非如此。相反,<TE.TE><TE>的子集,<Sense><Lemma>的子集。您的代码应该像这样进行调整:

代码语言:javascript
复制
let null_TE = query.Element("Sense").Element("TE").Element("TE.TE")

为简单起见,您可以像jimmy_keen建议的那样使用Descendants

代码语言:javascript
复制
let null_TE = query.Descendants("TE.TE").FirstOrDefault()
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11274637

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档