Это меня убивает, у меня есть XMLDocument, и мне нужно получить текстовое значение определенных узлов, но все, что я пробую, терпит неудачу. Учитывая приведенный ниже XML-документ, мне нужно получить такие вещи, как идентификатор пациента, фамилия и т. Д.
<Message xmlns="http://" version="010" release="006">
<Header>
<To Qualifier="C">1306841101</To>
<From Qualifier="P">8899922</From>
</Header>
<Body>
<RxFill>
<Patient>
<Identification>
<ID>193306093523</ID>
<ID3>111223333</ID3>
</Identification>
<Name>
<LastName>Smith</LastName>
<FirstName>Jane</FirstName>
</Name>
</Patient>
</RxFill>
</Body>
I can get the actual NodeList of 'Patient' like so:
XmlNode root = oDoc.DocumentElement;
oDoc.GetElementsByTagName("Patient")
но тогда я застрял, если я затем попытаюсь получить дочерний узел, xpath никогда их не найдет.
Например:
oDoc.GetElementsByTagName("Patient")[0].SelectSingleNode("Identification")
появляется null, хотя я вижу в отладчике, что «Идентификация» - это FirstChild. Я также добавил косую черту: «// Идентификация» и никакой радости.
Однако я могу добраться до него из документа:
oDoc.GetElementsByTagName("Identification")
но это не сработает, потому что у меня могут быть другие подобные теги в документе; Мне нужен только идентификационный ярлык, принадлежащий пациенту.
Я пробовал перебрать всех детей, чтобы найти их, но это кажется очень неэффективным.
Любые идеи?