2012-05-21 1 views
1

Мне нужно преобразовать определенную часть XML-файла в строку, причем данные в ней меняются. например.Convert Специфическая переменная в XML для строки C#

У меня есть файл XML с этой частью в нем: -<root>-<Data><1>data</1>

, и я хочу только преобразовать эту строку в строку, а не весь файл. Это я знаю, как это сделать. Моя проблема в том, что данные в «1» будут меняться в зависимости от обстоятельств, и я все же хочу иметь возможность использовать одну и ту же программу для ее преобразования независимо от того, что читает данные в «1».

читать «1» линию без verying данных Я знаю, что я могу использовать:

var xml = "<root><Data><1>data</1></Data></root>"; 
var xmlString = XElement.Parse(xml).Descendants("1").FirstOrDefault().Value; 

, но я не знаю, как сделать это с содержанием «1» меняется.

+0

Элемент '<1>' всегда является особым листом? Другими словами, есть ли у него какие-либо братья или сестры или это единственный дочерний элемент ''? – casperOne

+0

Следует отметить, что FirstOrDefault может вернуть значение null, что делает исключение .Value исключением. Я бы просто использовал. Во-первых, поэтому исключение имеет больше смысла. –

+0

Спасибо, я обращу внимание на то, что @YuriyFaktorovich – User093203920

ответ

1
var xml = "<root><Data><One>data</One></Data></root>"; 

var xmlString = (from data in XElement.Parse(xml).Descendants("Data") 
       where data.Descendants().Any() 
       select data.Descendants().First().Value).FirstOrDefault(); 

Примечание стороны: имея XML-элемент, имя которого начинается с числа считается недействительным XML, и как таковой, XElement не сможет разобрать его.

+0

, и спасибо за указание, что я не мог использовать «1», – User093203920

Смежные вопросы