У меня проблема с Linq To Xml.Linq To Xml проблемы с использованием метода XElement Элементы (XName)
Простой код. У меня есть этот XML:
<?xml version="1.0" encoding="utf-8" ?>
<data xmlns="http://www.example.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.example.com/directory file.xsd">
<contact>
<name>aaa</name>
<email>[email protected]</email>
<birthdate>2002-09-22</birthdate>
<telephone>000:000000</telephone>
<description>Description for this contact</description>
</contact>
<contact>
<name>sss</name>
<email>[email protected]</email>
<birthdate>2002-09-22</birthdate>
<telephone>000:000000</telephone>
<description>Description for this contact</description>
</contact>
<contact>
<name>bbb</name>
<email>[email protected]</email>
<birthdate>2002-09-22</birthdate>
<telephone>000:000000</telephone>
<description>Description for this contact</description>
</contact>
<contact>
<name>ccc</name>
<email>[email protected]</email>
<birthdate>2002-09-22</birthdate>
<telephone>000:000000</telephone>
<description>Description for this contact</description>
</contact>
Я хочу получить каждый контакт, сопоставляющий его по объекту Контакт. Для этого я использую этот фрагмент кода:
XDocument XDoc = XDocument.Load(System.Web.HttpRuntime.AppDomainAppPath + this.filesource);
XElement XRoot = XDoc.Root;
//XElement XEl = XElement.Load(this.filesource);
var results = from e in XRoot.Elements("contact")
select new Contact((string)e.Element("name"), (string)e.Element("email"), "1-1-1", null, null);
List<Contact> cntcts = new List<Contact>();
foreach (Contact cntct in results) {
cntcts.Add(cntct);
}
Contact[] c = cntcts.ToArray();
// Encapsulating element
Elements<Contact> final = new Elements<Contact>(c);
Ok просто не против того, что все: фокус на этом:
Когда я получить корневой узел, то все в порядке, я его правильно ,
Когда я использую выберите директиву Я стараюсь, чтобы каждый узел говоря: от е в
XRoot.Elements("contact")
OK вот проблема: если я использую: от е в XRoot.Elements() Я получаю все контактные узлы , но если я использую: от e в XRoot.Elements («контакт»), я НЕ НИЧЕГО: пуст SET.
OK вы сказать мне: Используйте другую: OK Я делаю так, давайте использовать: from e in XRoot.Elements()
, я получаю все узлы в любом случае, это верно, НО ВОТ ДРУГАЯ ПРОБЛЕМА: Когда говорят: select new Contact((string)e.Element("name"), (string)e.Element("email"), "1-1-1", null, null);
Пытаюсь открыть <name>, <email>
... Я ИСПОЛЬЗУЮ .Element («имя») И ЭТО НЕ РАБОТАЕТ СЛИШКОМ !!!!!!!! ЧТО ЭТО ЭТО ЭТО ????????????? ЭТО СМОТРЕТЬ, ЧТО Я НЕ СОБИРАЮТ ИМЯ, КОТОРЫЙ Я ПРОХОДИТ Но как это возможно. Я знаю, что функция Elements() принимает, перегружает один аргумент, который является XName, который отображается на строку. Пожалуйста, обратите внимание, что код, который я написал, приведен из примера, он должен работать.
Добро пожаловать в Stackoverflow - одно из советов: если вы публикуете фрагменты кода или фрагменты XML, ** пожалуйста ** выделите эти строки и нажмите кнопку «код» (101 010) на панели инструментов редактора, чтобы правильно отформатировать их , Делает ваш пост настолько приятным и читаемым! –