2014-01-10 2 views
0

Я пытаюсь выбрать «Пример языка» в xml-коде ниже. Это C#:Выбор атрибута в xml

XNamespace gml = "http://www.example.net/gdl"; 
XElement Xmlwater = XElement.Parse(e.Result); 

listBox3.ItemsSource = from Zwemwater in Xmlwater.Descendants(zwr + "Location") 
     select new water 
{ 
     water_name = water.Element(zwr + "Name").Value, 
     water_language = water.Element(zwr + "language").Value, // How to select the "nl" ? 
}; 

Это XML:.

<zwr:Location> 
    <zwr:Name>test<zwr:Name> 
    <zwr:Example language="nl"> Example text </zwr:beschrijving> 
    <zwr:Example language="en"/> 
</zwr:Location> 

Что является лучшим способом, чтобы получить пример языка = "NL, так что я могу связать его Спасибо заранее .

ответ

1

Предполагая water является <zwr:Location> элемент, вы можете сделать следующим образом:

water_language = water.Element(zwr + "Example").Attribute(zwr + "language").Value 

Это будет выбрать дочерний элемент Location, который имеет имя Example, а затем получить значение атрибута этого дочернего элемента language. PS: Я не уверен, если имя атрибута учитывает пространство имен или нет, но в примере выше я предполагаю, что это

+0

Большое спасибо. Любая идея, как я могу получить «Пример текста» тоже? Еще раз спасибо – user3147928

+1

, вы уже сделали это для элемента 'Name':' water.Element (zwr + «Name»). Value'. Просто измените «Имя» там, на «Пример». – har07

+0

Хорошо из источника. Дело только в том, что используемый мной xml начинается с пустого «", а затем текст с текстом «пример текста». Каков наилучший способ выбрать только информацию «nl» (пример текста)? Благодарю. – user3147928

1

Попробуйте свойство .Attributes вместо свойства .Element.

water_language = water.Attributes(zwr + "language").Value 
Смежные вопросы