Основной проблемой, с которой я столкнулся при разборе xml, был атрибут namespace в корневом элементе. Это мешало моему коду анализировать обычным способом, и именно поэтому я попытался использовать «XmlNamespaceManager». Я решил удалить пространство имен из XML.
Я использовал ниже рекурсивный метод для удаления пространства имен из XML, и все заработало !! Я не уверен, что это оптимальный путь, но я смог добиться того, чего хотел.
public XElement RemoveAllNamespaces(XElement root)
{
return new XElement(
root.Name.LocalName,
root.HasElements ?
root.Elements().Select(x => RemoveAllNamespaces(x)) :
(object)root.Value
);
}
Телефонный код:
XElement noNsDoc = RemoveAllNamespaces(XElement.Parse(xmlString));
var xDoc = XDocument.Parse(noNsDoc.ToString());