tengo este XML
<SENDERS VERSION="V3.0.4" xsi:noNamespaceSchemaLocation="SENDERS.xd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <SECTION> </SECTION> </SENDERS>Estoy tratando de analizarlo y encontrar la SECCIÓN del elemento con el espacio de nombres xsi usando el siguiente código
var xdoc = XDocument.Parse(myxml); var ns = xdoc.Root.GetNamespaceOfPrefix("xsi"); var section = xdoc.Element(ns + "SECTION");Por lo general, lo hago de esta manera, pero esta sección de tiempo siempre es nula. ¿Estoy haciendo algo mal?
Creo que lo recuerdas mal. En realidad, el elemento <SECTION> no tiene ningún prefijo de espacio de nombres explícito , por lo que solo puede tener un espacio de nombres predeterminado (que se declara sin prefijo).
Porque su XML no declara ningún espacio de nombres predeterminado (por ejemplo: xmlns=... ). Entonces, su <SECTION> no tiene espacio de nombres, el código de trabajo debería ser así:
var section = xdoc.Root.Element("SECTION"); Otro problema es que necesita usar XDocument.Root.Element en lugar de XDocument.Element .