Я использую XDocument.Parse метод для загрузки следующего XML:Получить значение атрибутов из XML с помощью XDocument
<AuditMessage>
<Event Action="Read" DateTime="2013/26/7" EventID="100"/>
<User Role="Admin" UserID="12123"/User>
<SourceIdentification SourceID="TeamLondon" SourceType="3"/>
<Network AccessPointID="143.176.8.32" AccessPointTypeCode="1" />
<Network AccessPointID="143.176.8.32" AccessPointTypeCode="`2" />
<Participant ParticipantID="0001" ParticipantType ="2"/>
<Participant ParticipantID="0002" ParticipantType ="3"/>
<Participant ParticipantID="0003" ParticipantType ="3" ParticipantName = "Housh Mangrove"/>
</AuditMessage>
Мне нужно получить значение следующих атрибутов в приведенном выше XML.
-DateTime
-Role
-AccessPointID
-ParticipantID
-ParticipantName
Я использовал sourceXML.Root.Element(nodeName).Attribute(attributeToMatch).Value
для чтения одного атрибута. Я не понимаю, как я могу повторять одно и то же на разных узлах, если некоторые узлы могут отсутствовать. Обратите внимание:
<Network>
и<Participant>
узлы повторяют.ParticipantName
Атрибут существует только в одном экземпляре- Наконец, любой узел может отсутствовать в разных XML-файлах, предоставляемых как Input. Поэтому мне нужно написать код таким образом, что если узел отсутствует, приложение не бросает OBJECT REFERENCE NOT FOUND. Исключение
это довольно просто сделать, не так сделать попытку? – Jonesopolis
Да, я сделал, я могу прочитать один атрибут, используя sourceXML.Root.Element (nodeName) .Attribute (attributeToMatch) .Value; Мне было интересно, есть ли более простой метод, так как это приведет к повторяющемуся коду –
. Проверьте [это] (https://www.google.com/search?q=xDocument+node+c%23) –