我.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());
}
而問題是,輸出看起來像: 貓 - 沒有 和應be 貓 - 動物
如何從我的.xml獲取TE.TE?
@jimmy_keen:很好的建議。我會使用'FirstOrDefault'而不是'First',因爲OP會檢查'null_TE == null',這意味着他們期望找不到元素的情況。 – Douglas
@Douglas:是的,這可能是最好的選擇。刪除了評論,因爲您已經在回答中包含了所有我必須說的內容。 –
@Douglas我又已經問題 - 怎樣才能獲得更多的要素:貓 , CAT2 , CAT3 - 現在我只能得到第1個要素。 –
user1224476