para ningún neutral medio existe entre conflicto c# xml linq linq-to-xml

c# - no existe ningún medio para resolver el conflicto entre mscorlib version 4.0 0.0 culture neutral



El carácter '':'', valor hexadecimal 0x3A, no se puede incluir en un nombre (5)

Estaba teniendo el mismo error. Descubrí que estaba agregando código ...

var ab = "http://whatever-the-url-is";

... pero ab estaba decidido a ser una cadena. Esto causó el error informado por OP. En lugar de usar la palabra clave VAR, utilicé el tipo de datos real XNamespace ...

XNamespace ab = "http://whatever-the-url-is";

... y el problema desapareció

Tengo un archivo xml que contiene su elemento como

<ab:test>Str</ab:test>

Cuando intento acceder utilizando el código:

XElement tempElement = doc.Descendants(XName.Get("ab:test")).FirstOrDefault();

Me está dando este error:

System.Web.Services.Protocols.SoapException: el servidor no pudo procesar la solicitud. ---> System.Xml.XmlException: El carácter '':'', valor hexadecimal 0x3A, no se puede incluir en un nombre.

¿Cómo debería acceder?


Hay una sobrecarga del método Get que tal vez quiera probar que tenga en cuenta el espacio de nombres. Prueba esto:

XElement tempElement = doc.Descendants(XName.Get("test", "ab")).FirstOrDefault();


Intenta obtener el espacio de nombres del documento

var ns = doc.Root.Name.Namespace;


Intenta poner tu espacio de nombre en { ... } manera:

string xfaNamespace = "{http://www.xfa.org/schema/xfa-template/2.6/}";


Si desea usar espacios de nombres, LINQ to XML lo hace realmente fácil:

XNamespace ab = "http://whatever-the-url-is"; XElement tempElement = doc.Descendants(ab + "test").FirstOrDefault();

Busque una sección xmlns:ab=... en su documento para averiguar a qué URI de espacio de nombres se refiere.