У меня возникли проблемы с поиском запроса при попытке проанализировать XML-файл с помощью XDocument.Как получить правильные элементы с запросом XDocument
Что я хочу:
Дайте мне все значения «Name» Элементы Шаге с идентификатором = «id_3» Таким образом, результат должен быть список, содержащий «Имя части 1, Наименование части 2, Название части 3 Название части 4
входного XML:..
<MyXML>
<Step id="id_1" type="type1">
<Name>Some Name</Name>
<Location>1</Location>
<Quantity>1</Quantity>
</Step>
<Step id="id_2" type="type1">
<Name>>Some Name</Name>
<Location>2</Location>
<Quantity>1</Quantity>
</Step>
<Step id="id_3" type="type2">
<Instruction>This is some text</Instruction>
<Component>
<Name>Name of part 1</Name> // --> I want this value
<Transition_Start>-0.2,0.01,0.0</Transition_Start>
<Transition_End>0,0.01,0.0</Transition_End>
</Component>
<Component>
<Name>Name of part 2</Name> // --> and this
<Transition_Start>0.2,0.01,0</Transition_Start>
<Transition_End>0,0.01,0</Transition_End>
</Component>
<Component>
<Name>Name of part 3</Name> // --> and this
<Transition_Start>0.05,0.1004,0.0333</Transition_Start>
<Transition_End>-0.0803,0.1004,0.0333</Transition_End>
</Component>
<Component>
<Name>Name of part 4</Name> // --> and this
<Transition_Start>-0.0107,0.0383,-0.2328</Transition_Start>
<Transition_End>-0.0107,0.0383,-0.2328</Transition_End>
</Component>
</Step>
</MyXML>
Я пытался что-то вроде этого (в Unity3D)
IEnumerable<XElement> e_nameOfObjects =
from el in myXMLDoc.Root.Elements ("Step")
where (string)el.Attribute ("id") == "id_" + currentStep
select el.Elements ("Component");
foreach (XElement e in e_nameOfObjects) {
Debug.Log (e.Element("Name"));
}
Сообщение об ошибке:
Не может неявно преобразовать тип System.Collections.Generic.IEnumerable> ' к System.Collections.Generic.IEnumerable. Явное преобразование существует (вы пропали без вести броска?)
Пожалуйста, опишите, каким образом это не работает? Вы получаете неправильные данные, исключение, что-то еще? Пожалуйста, подробно в вопросе. – Richard
«Пожалуйста, подробно укажите вопрос» (код/ошибки в комментариях слишком трудно читать). – Richard
IEnumerable e_nameOfObjects = (от эль в myXMLDoc.Root.Elements ("Шаг"), где (строка) el.Attribute ("ID") == "id_" + currentStep выберите el.Elements ("Компонент")).К списку(); –
jdweng