2010-08-06 2 views
2

Я пытаюсь понять LINQ к XML «синтаксис запроса инлайн» особенности из VB.Netvb.net LINQ к синтаксису XML для документов с XML-пространства

Сначала я попытался с помощью этого простого файла 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>[email protected]) 

Тогда я изменить <Root> элемент в файле XML образца, чтобы:

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

Теперь я не могу больше использовать удобный синтаксис «оси 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) 

ответ

2

Я нашел ответ here

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

я должен был добавить оператор Imports для XML-пространства:

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

Тогда вы можете запросить с:

xdoc.Root.<ns:Child>[email protected] 
Смежные вопросы