Запросите все элементы XML и подэлементы с соответствующим значением и именем [дубликат]C#

Место общения программистов C#
Ответить
Anonymous
 Запросите все элементы XML и подэлементы с соответствующим значением и именем [дубликат]

Сообщение Anonymous »

У меня есть XML-файл следующего содержания:

Код: Выделить всё




John
Doe
CA
30

001555123456
001666147258


SF-Railroad2233
SF-PaloAlto



Jane
Doe
INT
20

001555456789
001666258369


NY-AppleAve5
NY-Brooklyn




Из предложенного сообщения об автозакрытии принятое сообщение от XElement для получения всех имен и значений узлов подэлементов
должно решить мой вопрос
Частично это так (кроме того факта, что мой подход дает тот же результат)
С помощью кода:

Код: Выделить всё

static void Main(){
string xml3 = "xml3.xml";
var list = from x in XElement.Load(xml3).Elements("root")
select new
{
Name = x.Name,
Value = (string)x
};
foreach (var item in list)
{
Console.WriteLine("Item Name: {0} - Item Value: {1}", item.Name, item.Value);
}
}
Результат:

Имя элемента: root — значение элемента: JohnDoeCA30001555123456001666147258SF-Railroad2233SF-PaloAltoJaneDoeINT20001555456789001666258369NY-AppleAve5NY-Br Оклин

Пока этот код

Код: Выделить всё

static void Main(){
string xml3 = "xml3.xml";
string selection = "Sample-CA1-John";
var doc4 = XDocument.Load(xml3);
var csFiles3 = doc4.Descendants(selection)
.Where(n => n.Element("type")?.Value == "CA")
.ToList();
foreach (var cs in csFiles3)
{
Console.WriteLine(cs);
}
}
Возвраты:

Код: Выделить всё

John
Doe
CA
30

001555123456+
001666147258


SF-Railroad2233
SF-PaloAlto


С помощью этого кода:

Код: Выделить всё

XDocument doc = XDocument.Load(xml3);
IEnumerable filteredElements = doc.Descendants()
.Where(n => n.Element("type")?.Value == "CA");
foreach (XElement elements in filteredElements)
{
Console.WriteLine("Name: {0} - Value: {1}", elements.Name,     elements.Value);
}
Я получаю один элемент со всеми значениями в .Value, но только с тегом .Where как Element.Name

Имя: Sample-CA1-John - Значение: JohnDoeCA30001555123456+001666147258SF-Railroad2233SF-PaloAlto

Ни один подход, который я пробовал, отличается от результаты выше.
Я хочу получить доступ к каждому element.Name и element.Value. В зависимости от поискового тега. Почему? Потому что я хочу прочитать XML и записать каждое значение в отдельное поле.

Подробнее здесь: https://stackoverflow.com/questions/791 ... e-and-name
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»