Найти узлы XML внутри узлов?
Привет,
Я изо всех сил пытаюсь понять, как извлечь внутренние текстовые значения узлов xml, где родительский узел не всегда содержит один и тот же дочерний узел. Ниже приведен мой xml-файл (урезанная версия). Я пытаюсь извлечь значения атрибутов из каждого узла PointRecord, где они существуют. Атрибут может существовать, а может и не существовать.
Я хочу извлечь значение PointRecord 'Name' и все значения атрибутов только в том случае, если они существуют. :( есть идеи? Прости меня, потому что я немного нуб..
<PointRecord ID="00000059" TimeStamp="2019-03-16T11:53:43"> <Name>1A</Name> <Method>DirectReading</Method> <Features> <Feature Name="elCABL"> <Attribute> <Name>DSS Code</Name> <Value>21</Value> </Attribute> <Attribute> <Name>Depth (m)</Name> <Value>0.8</Value> </Attribute> <Attribute> <Name>Class</Name> <Value>B</Value> </Attribute> </Feature> </Features> </PointRecord> <PointRecord ID="00000060" TimeStamp="2019-03-16T11:54:33"> <Name>1B</Name> <Method>DirectReading</Method> </PointRecord> <PointRecord ID="00000061" TimeStamp="2019-03-16T11:55:33"> <Name>1C</Name> <Method>DirectReading</Method> <Features> <Feature Name="elPole"> <Attribute> <Name>DSS Code</Name> <Value>23</Value> </Attribute> </Feature> </Features> </PointRecord>
Что я уже пробовал:
Dim aux As New XmlDocument() Dim PointLst As XmlNodeList Dim Name as String = String.Empty aux.Load("test.xml") PointLst = aux.GetElementsByTagName("PointRecord") For Each Att as XmlElement in PointLst If Att.GetElementsByTagName("Feature") IsNot Nothing Then Name = Att.FirstCild.InnerText //lost here, not sure how to procees?? End If Next