я работал с определенным XML, где не было никаких увольненийИзбежание Увольнение в XML-документах
<person>
<eye>
<eye_info>
<eye_color>
blue
</eye_color>
</eye_info>
</eye>
<hair>
<hair_info>
<hair_color>
blue
</hair_color>
</hair_info>
</hair>
</person>
Как вы можете видеть, суб-тег цвет глаз делает ссылку на глаз в его имя, так что не было нет необходимости, чтобы избежать дублирования, я не мог получить цвет глаз в одной строке после загрузки XML в набор данных:
dataset.ReadXml(path);
value = dataset.Tables("eye_info").Rows(0)("eye_color");
Я понимаю, что это не самый умный способ сделать это, и эта ситуация у меня теперь не было непредвиденным.
Теперь, скажем, я должен читать XML, которые находятся в этом формате:
<person>
<eye>
<info>
<color>
blue
</color>
</info>
</eye>
<hair>
<info>
<color>
blue
</color>
</info>
</hair>
</person>
Так что если я пытаюсь вызвать его, как это:
dataset.ReadXml(path);
value = dataset.Tables("info").Rows(0)("color");
Там будет избыточность, потому что Я мог бы зайти только на один уровень, чтобы идентифицировать одно поле в XML с моим предыдущим методом, а «disambiguator» - это три уровня выше.
Есть ли практический способ достичь без ошибок одного поля, заданного всем вышеперечисленным (или хотя бы несколькими) полями?
- [EDIT] -
Я сделал еще один вопрос с вопросом, как я мог получить определенный узел с помощью LINQ, check it out.
Я бы пошел с Linq в Xml, это вполне естественно. –
Спасибо, у меня была проблема при попытке его использовать .. проверьте обновление – Marcelo