Как вы извлекаете конкретный элемент из XDocument? - PullRequest
1 голос
/ 11 марта 2010

У меня есть следующий XDocument:

<SomeDoc Id="73" Protocol="rahrah" xmlns="http://schemas.company.com/rah/rah2/2005/">
  <Prop1>11111</Prop1> 
  <Prop2>77777</Prop2> 
  <Prop3>88888</Prop3> 
</SomeDoc>

И я хочу извлечь значение в Prop1.

Я использую следующий код:

var prop1 = xml.Element("Prop1");

Но prop1 устанавливается в ноль. Я пытаюсь извлечь элемент правильно?

Ответы [ 2 ]

3 голосов
/ 11 марта 2010

Я предполагаю, что xml - это сам объект XDocument.

Объект XDocument содержит корневой элемент, а не его дочерние элементы. Вам нужно написать xml.Root.Element("Prop1");.

РЕДАКТИРОВАТЬ : Вам также необходимо включить пространство имен, например:

XNamespace ns = "http://schemas.company.com/rah/rah2/2005/";
xml.Root.Element(ns + "Prop1");
0 голосов
/ 11 марта 2010

Не могли бы вы опубликовать код, который вы используете для заполнения переменной xml?

Мое странное предположение состоит в том, что XDocument не распознает фрагмент XML как действительный документ. Я думаю, что XDocument ожидает корневой узел <?xml version="1.0"?>. Возможно, вам придется использовать XmlTextReader вместо XDocument.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...