Как объединить значение одного и того же тега в 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);