Как объединить значение одного и того же тега в XML

Я новичок в XML, и у меня возникла проблема с объединением двух значений в XML с одним и тем же именем тега.

Пример XML,

 <point>
  <ref>
    <text>My name</text>
  </ref>
  <ref>
    <text>James</text>
  </ref>
 </point>

Я хочу получить вывод "Меня зовут Джеймс"... есть идея или решение?

1 ответ

Решение

Supose Xml файл находится по адресу C:\Temp\test.xml

string fileContent = File.ReadAllText(@"C:\Temp\test.xml");

var xml = XElement.Parse(fileContent);

              //select every node with name 'text' regardless of their location in DOM
var values  = xml.XPathSelectElements("//text")
                 .Select(element => element.Value);

string result = string.Join(" ", values);

Console.WriteLine (result);

Печать

Меня зовут джеймс

Если вы хотите конкретные узлы в пути point/ref/text, затем используйте следующий values экстрактор

var values = xml.Descendants("ref")
                .Elements()
                .Where(node => node.Name == "text")
                .Select(node => node.Value);
Другие вопросы по тегам