tengo un xml con varios espacios de nombres que me gustaría realizar consultas mediante .SelectNodes (cadena xRuta)XPath para el espacio de nombres XML con
El problema que noto es que la consulta XPath retorno nada, siempre y cuando tengo todos esos espacios de nombres alrededor.
de todos modos hay que contar XmlDocument.SelectNodes hacer caso omiso de esos espacios de nombres y simplemente me los elementos correctos (los elementos que consulta no parecen tener espacios de nombres de prefijo)?
si existe, ¿alguien puede darme un ejemplo de cómo hacerlo? ¿Qué debería haber definido antes/cuando consulto los nodos?
Gracias por la ayuda.
Corrección: todavía no puedo entender cuál es el problema. aquí está mi xml:
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:gf="http://schemas.google.com/finance/2007"
xmlns:gd="http://schemas.google.com/g/2005" >
<id>http://finance.google.com/finance/feeds/[email protected]/portfolios</id>
<updated>2009-12-15T19:32:21.000Z</updated>
<category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/finance/2007#portfolio" />
<title type="text" >Portfolio Feed</title>
<link rel="alternate" type="text/html" href="http://finance.google.com/finance/portfolio?action=view" />
<link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://finance.google.com/finance/feeds/default/portfolios" />
<link rel="http://schemas.google.com/g/2005#post" type="application/atom+xml" href="http://finance.google.com/finance/feeds/default/portfolios" />
<link rel="self" type="application/atom+xml" href="http://finance.google.com/finance/feeds/default/portfolios" />
<openSearch:totalResults>24</openSearch:totalResults>
<openSearch:startIndex>1</openSearch:startIndex>
<openSearch:itemsPerPage>24</openSearch:itemsPerPage>
<entry>
<id>http://finance.google.com/finance/feeds/[email protected]/portfolios/2</id>
<updated>2009-12-14T16:26:53.000Z</updated>
<category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/finance/2007#portfolio" />
<title type="text" >Main</title>
<link rel="self" type="application/atom+xml" href="http://finance.google.com/finance/feeds/default/portfolios/2" />
<link rel="edit" type="application/atom+xml" href="http://finance.google.com/finance/feeds/default/portfolios/2" />
<gd:feedLink href="http://finance.google.com/finance/feeds/[email protected]/portfolios/2/positions" />
<gf:portfolioData currencyCode="USD" gainPercentage="0.0" return1w="0.0" return1y="0.0" return3m="0.0" return3y="0.0" return4w="0.0" return5y="0.0" returnOverall="0.0" returnYTD="0.0" />
</entry>
</feed>
y aquí está mi código:
XmlDocument xml = ExecuteRequest (url);
var xmlnsManager = new System.Xml.XmlNamespaceManager(xml.NameTable);
xmlnsManager.AddNamespace("xmlns:openSearch", "http://a9.com/-/spec/opensearchrss/1.0/");
xmlnsManager.AddNamespace("xmlns:gf", "http://schemas.google.com/finance/2007");
xmlnsManager.AddNamespace("xmlns:gd", "http://schemas.google.com/g/2005");
var nodes = xml.SelectNodes("//feed/entry", xmlnsManager);
y mis nodos cuentan todavía es 0! ¿alguna idea?
Las respuestas de solo enlace son respuestas deficientes. Debe incluir el contenido sustantivo de la respuesta vinculada. Sin embargo, en este caso, una vez que haga eso, su respuesta se parecerá a [la respuesta de Darrel Miller arriba] (http://stackoverflow.com/a/2075794/2704659), que, en mi opinión, debería ser la respuesta aceptada aquí, no es tuyo. –