Я хочу получить синоним слова в C#. Например, merhaba - привет или selam-hi. Я могу только «merhaba» «привет», но я не могу получить доступ к другим узлам. (Merhaba-hi или selam-hi) Как я могу это сделать? Спасибо.В linq получить синоним слова
Мой 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
};
Первое, что я хотел бы отметить, это то, что этот XML не очень подходит для того, что вы хотите. Прямой связи между «hello-merhaba» нет, кроме того, что они являются первым словом в списке слов для этого языка. Это определенно не путь. Поэтому, если этот XML не является внешним источником, и вы не можете заставить их его изменить; изменить XML. – RobIII
Я смущен тем, что вы на самом деле пытаетесь сделать здесь. Вы хотите получить все узлы под независимо от того, какой из вариантов вы получите в качестве входных данных? Я согласен с тем, что структура XML кажется слишком плоской, чтобы сделать это ясным способом. –
Пример. Пользователь вводит «merhaba», и я хочу показать ему привет и привет. Этот код только приветствует меня. Я не могу получить доступ к другому узлу, который называет тот же (английский). Так что же делать? :) Должен ли я изменить «английский» на другое место? – user1545283