Поскольку теги "<dnsServer>"
или "<dnsServers>"
не существуют, я получаю сообщение об ошибке. Я пытаюсь проверить, является ли это null, но мой код не работает. Я получаю ошибку:Как проверить, существует ли конкретный узел XML, используя LINQ
{"Object reference not set to an instance of an object."}
Вот код:
var networkElement = doc.Root
.Element("networkAdapters")
.Elements("networkAdapter")
.First(a => (string)a.Attribute("id") == networkAdapter.networkAdapterId.ToString());
var dnsServers = networkElement.Element("dnsServers")
.Elements("dnsServer") == null ? null : networkElement.Element("dnsServers").Elements("dnsServer");
и XML пример:
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<server id="454a8a22-8e9e-4023-9a8e-c8a4e0f259b3" productName="Manifest" created="2014-01-16T22:07:28" name="SERVER001">
<networkAdapters>
<networkAdapter id="bfcbda99-719c-4b0c-b7b2-b9167350c982" busLocation="0-N2" permanentMacAddress="00144FE5448E" physicalAdapter="True" ipEnabled="False">
<defaultGateways />
<ipAddresses />
</networkAdapter>
<networkAdapter id="73606723-fd91-40df-96dd-0bff7851cea6" ipEnabled="True">
<defaultGateways>
<defaultGateway address="99.15.210.1" index="0" />
</defaultGateways>
<ipAddresses>
<ipAddress address="99.15.210.7" subnetMask="255.255.255.224" index="0" />
</ipAddresses>
</networkAdapter>
<networkAdapter id="6520a041-2cf3-40b1-b123-1eb13f704442" busLocation="0-N3" permanentMacAddress="00144FE5448F" physicalAdapter="True" ipEnabled="False">
<defaultGateways />
<ipAddresses />
</networkAdapter>
</networkAdapters>
</server>
Спасибо
Как ваш XML выглядит? – MarcinJuraszek
только что опубликовал. Иногда мы получаем файл без тега, который находится внутри –
Max
ну, мне нужно проверить, есть ли какие-либо ipAddresses, другими словами, чтобы проверить, есть ли у нас тег. То же самое для . Одна вещь, которую я заметил в этом XML-файле, это то, что у меня есть тег , но не , поэтому мне нужно найти логику, чтобы проверить, есть ли у меня какие-либо ipAddresses или dnsServers. –
Max