Как с помощью LINQ-to-XML избежать возврата подробных пространств имен для потомков после вызова .Descendants()?C#

Место общения программистов C#
Anonymous
Как с помощью LINQ-to-XML избежать возврата подробных пространств имен для потомков после вызова .Descendants()?

Сообщение Anonymous »

Если у меня есть XDocument, и я знаю пространство имен, но не его префикс, и хочу получить определенного потомка с префиксами, а не с пространствами имен (например, точно так же, как это было в исходной строке XML), как я могу это сделать? p>
Например, предположим, что у меня есть Возможно, я бы попробовал:

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

XElement envelope = XElement.Parse(soapEnvelopeXml);
XNamespace envelopeNamespace = "http://schemas.xmlsoap.org/soap/envelope/";
return envelope.Descendants(envelopeNamespace + "Body").FirstOrDefault()?.ToString();
Но это дает мне полное пространство имен, в результате чего: Хотя мне нужен фрагмент именно того XML, с которого я начал: Могу ли я как-нибудь просто удалить объявления пространства имен (но не префиксы)? Или есть более элегантный способ более точно получить подмножество XML, с которого я начал?


Подробнее здесь: https://stackoverflow.com/questions/786 ... he-descend

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