Я думаю, что я делаю что-то неправильно здесь. Я использую XDocument.Descendants, чтобы получить элемент внука xml-файла, который я пытаюсь проанализировать в объекте. Но каждый раз, когда я пытаюсь запустить его, я получаю нулевое значение.XDocument.Descendants, возвращающий нулевые значения
IEnumerable<PatientClass> template = (IEnumerable<PatientClass>)(from templates in xDocument.Descendants("dataTemplateSpecification")
select new PatientClass
{
PatientId = int.Parse(templates.Descendants("element").Single(el => el.Attribute("name").Value=="PatientId").ToString()),
EMPIID = int.Parse(templates.Descendants("element").Single(el => el.Attribute("name").Value=="EMPIID").ToString())
});
Предположим, что это была степень запроса Linq, который я использую ...
<dataTemplateSpecification id="id1" name="name1" >
<templates xmlns="">
<template>
<elements>
<element id="element0" name="PatientId" display="Patient ID" dataType="String" visable="true" readOnly="false" value="4563">
<mapping path="//Template/TemplateData/ACOData/PATIENT_ID" />
</element>
<element id="element1" name="PopulationPatientID" display="Population Patient ID" dataType="String" visable="true" readOnly="true" enc="2098" value="6407">
<mapping path="//Template/TemplateData/ACOData/POPULATION_PATIENT_ID" />
</element>
<element id="element2" name="EMPIID" display="EMPIID" dataType="String" visable="true" readOnly="true" value="">
<mapping path="//Template/TemplateData/ACOData/EMPI" />
</element>
</elements>
</template>
</templates>
</dataTemplateSpecification>
Предположим, что это XML-файл, который я использую ... сейчас, мне нужны пространства имен, чтобы заставить этот выше запрос работать? Надеюсь нет. это означало бы, что мне пришлось бы переписать мой xml ... Который действительно, действительно был бы груб для меня.
вы можете попробовать 'xDocument.Descendants() Где (х => x.Name.LocalName == "dataTemplateSpecification");. ', Чтобы проверить свои пространства имен вопрос. – Bazzz
Пожалуйста, очистите свой код перед его отправкой. У вас есть код для комментирования, и насколько он широк, прежде чем вставлять разрыв строки? –
Ваш код выдает 'FormatException' в' int.Parse() ', потому что вы пытаетесь разобрать весь элемент на' int', который не будет работать. Но он не возвращает «null» для меня. Действительно ли 'dataTemplateSpecification' является корнем вашего документа? Если нет, имеет ли настоящий корень какие-либо атрибуты 'xmlns'? – svick