0

C# で単語の同義語を取得したい。たとえば、merhaba - こんにちはまたは selam-hi です。「merhaba」から「hello」しかできませんが、他のノード (merhaba-hi または selam-hi) にはアクセスできません。ありがとう。

私のXMLファイル。

<Words>
    <Meaning>
        <Turkish type="noun">merhaba</Turkish>
        <Turkish type="noun">selam</Turkish>
        <English type="noun">hello</English>
        <English type="noun">hi</English>
    </Meaning>
</Words>

私の質問はそのようなものでした。

var word = from p in doc.Elements("Words").Elements("Meaning")
             where textBox1.Text == p.Element("Turkish").Value
             select new
             {
                _word = p.Element("Turkish").Value,
                meaning = p.Element("English").Value,
                kind = p.Element("English").Attribute("type").Value
             };
4

1 に答える 1

1

おそらく次のようなことを試してみてください。

var word = from p in doc.Elements("Words").Elements("Meaning")
           where p.Elements("Turkish").Any(item => item.Value == textBox1.Text)
           from synonym in p.Elements("English")
           select new
           {
               _word = textBox1.Text,
               meaning = synonym.Value,
               kind = synonym.Attribute("type").Value
           };

p.Elements("Turkish").Any(item => item.Value == textBox1.Text)は、目的の単語を含む意味要素を探します。線はというfrom synonym in p.Elements("English")名前のすべての要素を通過しますEnglish

于 2012-07-23T10:40:54.497 に答える