vb.net синтаксис linq to xml для документов с пространством имен xml - PullRequest
2 голосов
/ 06 августа 2010

Я пытаюсь понять функции 'синтаксиса встроенного запроса' linq to xml в VB.Net

Сначала я попробовал использовать этот простой XML-файл:

    <?xml version="1.0" encoding="utf-8" ?>
    <Root>
       <Child Name="somename">
          <SomeAttribute>SomeValue</SomeAttribute>
       </Child>
    </Root>

Этот XML,при загрузке в XDocument может быть загружен и запрошен следующим образом:

    Dim xdoc = XDocument.Load("sample.xml")
    Console.WriteLine(xml.Root.<Child>.@Name)

Затем я изменяю элемент <Root> в файле примера XML на:

    <Root xmlns="http://SomeNamespace">

Теперь я могупохоже, больше не использует удобный синтаксис «Axis Properties» ... Я могу заставить его работать только с явным синтаксисом XElement:

    Dim ns As XNamespace = "http://SomeNamespace"
    ' works, but I would like to use the same syntax as above...
    Console.WriteLine(xdoc.Descendants(ns + "Child").First().Attribute("Name").Value)

1 Ответ

2 голосов
/ 07 августа 2010

Я нашел ответ здесь

Сначала я не знал, что эта синтаксическая функция называлась "Свойства оси".

Мне пришлось добавить Importsоператор для пространства имен xml:

Imports <xmlns:ns="http://SomeNamespace">

Затем вы можете запросить с помощью:

xdoc.Root.<ns:Child>.@Name
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...