C # XDocument archivos de formato de análisis XML con espacios de nombres

1  <? xml version = "1.0" encoding = "UTF-8" >? 
2  < entrada xmlns = "http://www.w3.org/2005/Atom" xmlns: DB = "http://www.douban.com/ xmlns /" xmlns: gd = "http://schemas.google.com/g/2005" xmlns: opensearch = "http://a9.com/-/spec/opensearchrss/1.0/" > 
3    < ID > http : //api.douban.com/event/10069638 </ ID > 
4    < título > Depuración de la web </ titulo > 
5    <= "http://www.douban.com/2007#event.salon" /> 
6    < autor > 
7      < enlace href = "http://api.douban.com/people/1057620" rel = "auto" / > 
8      < enlace href = "http://www.douban.com/people/aka/" rel = "alternate" /> 
9      < enlace href = "http://t.douban.com/icon/u1057620-16 .jpg" rel = "icono" /> 
10  
11      <nombre>王胖子</ nombre > 
12      <uri > http://api.douban.com/people/1057620</ Uri > 
13  </ autor > 
14 </ entry>

 

<Db: nombre del atributo = "invite_only"> no </ db: atributo>

 Www no quiere ver a tantos de salto y, a continuación, ver el familiar <autor> </ author>, se aplica de manera decisiva el ejemplo anterior procedimientos, y por lo tanto no llegó a correr, al final el problema? C # ofertas XML mucha clase, XDocument, XReader, XPath, XmlDocument , no es lo que estoy utilizando esta clase de no forzar ah?
(1) Véase más abajo donde <entrada xmlns = " http://www.w3.org/ 2005 / Atom "  , es el espacio de nombres XML xmlns intencionados.
(2) Ver Más tarde, xmlns: DB = " http://www.douban.com/xmlns/"  , la unión <db: nombre del atributo = "invite_only "> no </ db: atributo> Esta frase lata entiendo,
db se conoce como un espacio de nombres para facilitar la escritura delante del nombre del elemento, por lo que <db: atributo> y <atributo>, <gd: atributo > no es lo mismo.
(3) Esto puede hacerse referencia a un documento en el que la variable de diferencia, pero un gran número de documentos o no, por lo que el espacio de nombres, así como el nombre completo, es aquí http://www.douban.com/xmlns/ . De hecho, escribir el nombre completo de lo que va a hacer por Analizador XML para ambos manejado como una cadena, sino un nombre para pensar demasiado, y en segundo lugar para tomar la oportunidad de ser la publicidad, por lo que generalmente usamos la URL.

http://www.w3.org/2005/Atom al final es Gesha ah, incluso el análisis con espacios de nombres xmlns archivo XML (preliminar espacio de nombres análisis XML en) un corto que no?
Hey, consciente de esta a la derecha, que se conoce como "", una cadena vacía. Esto es algo que se llama espacio de nombres predeterminado, sin prefijo que revisa toda el espacio de nombres. De manera que <autor> no está desnudo, ah, la gente realmente < " http://www.w3.org/2005/Atom ": autor> programa tan desnudo no puede analizar el curso.

 Entonces, ¿cómo resolverlo? Aquí es un programa de ejemplo, queremos ayuda. Este código se puede ejecutar en WP7.

 

1  cuerda = Archivo @ " C: \ Users \ los v-menlin \ Documents \ Visual Studio 2010 \ Proyectos \ Test \ Test \ test.xml " ;
 2              XDocument DOC = XDocument.Load (Archivo);
 3              // uso siguiente código para una cadena del análisis sintáctico 
 . 4              // el DOC XDocument XDocument.Parse = (String);
 . 5  
. 6              // para todo el archivo XML no añadió db similares: este elemento, por el siguiente método 
. 7              una XNamespace D = @ " HTTP: // WWW .w3.org / 2005 / el Atom " ;
 . 8              el foreach (el elemento XElement en doc.Descendants (D + " título " ))
. 9              {
 10                  Console.WriteLine (element.Value);
 . 11              }
 12 es              // <autor> La siguiente contiene un <link>, el siguiente ejemplo también muestra cómo leer atributos. 
13 es              el foreach (el elemento XElement en doc.Descendants (D + " autor " ))
 14              {
 15                  el foreach (la inelement XElement en element.Descendants (D + " Enlace " ))
 16                  {
 . 17                      Console.WriteLine (inelement.Attribute ( " el href " ) .Value);
18 es                      Console.WriteLine (inelement.Attribute ( " el rel " ) .Value);
 . 19                  }
 20 es              }
 21 es  
22 es              Console.WriteLine ();
 23 es              // para los elementos de prefijo agregado de colon, utilice el siguiente código de 
24              una XNamespace DB = @ " HTTP : //www.douban.com/xmlns/ " ;
 25              la foreach (el elemento XElement en doc.Descendants (DB + " atributos " ))
 26 es              {
 27                  Console.WriteLine (element.Attribute ( "nombre " ) .Value);
 28                  Console.WriteLine (element.Value);
 29              }
 30              // . es única cabeza espacio de nombres para un momento
 31 es  
32              // Los siguientes son algunos otros cabeza común directamente para su uso. 
33 es              una XNamespace = Gd @ " http://schemas.google.com/g/2005 " ;
 34 es              un XNamespace OpenSearch = @ " http://a9.com/-/spec/opensearchrss/1.0/ " ;

 

Supongo que te gusta

Origin www.cnblogs.com/baylor2019/p/12616622.html
Recomendado
Clasificación