У меня есть XML-документ, из которого мне нужно получить только 2 значения. В прошлом я мог сделать это очень легко, используя XDocument:
Пример XML:
<?xml version="1.0" standalone="yes"?>
<Vehicles>
<Truck>
<Color>Blue</Color>
<Make>General Motors</Make>
<Weight>3000</Weight>
</Truck>
</Vehicles>
Если бы я хотел получить доступ только к <Weight>
из <Truck>
, я мог бы сделать это:
Dim xdoc as XDocument = XDocument.Load("c:/example.xml")
Dim truckWeight as Integer = Integer.Parse(xdoc.<Vehicles>.<Truck>.<Weight>.Value)
... и я был бы на моем веселом пути. Однако в этом случае мой XML-документ имеет пространство имен в начале, например:
<?xml version="1.0" standalone="yes"?>
<Vehicles xmlns="http://interweb.com/Vehicles.xsd">
<Truck>
<Color>Blue</Color>
<Make>General Motors</Make>
<Weight>3000</Weight>
</Truck>
</Vehicles>
Если я попытаюсь использовать приведенные выше строки для получения truckWeight
, .Value
вернет Nothing
, даже если xdoc
окажется заполненным с помощью средства чтения текста Visual Studio.
Что я могу сделать, чтобы иметь возможность использовать упомянутую нотацию XDocument, которую я использовал ранее, оставив файл XML без изменений? Если это невозможно, каков альтернативный способ доступа к чему-то вроде <Weight>
в файле XML с пространством имен?
xdoc.Root.Name.Namespace
. Спасибо! 07.06.2018