obtén este valor xml con c #

Necesito obtener el número al lado del texto de la palabra, en este caso el número es 1

<SD>
<POPULARITY URL="google.com/" TEXT="1"/>
<REACH RANK="1"/>
<RANK DELTA="+0"/>
</SD>

¿Cómo puedo obtener el número en c #?

Muchas Gracias

preguntado el 08 de enero de 11 a las 18:01

3 Respuestas

Además de los ejemplos anteriores, puede intentar usar linq to xml

Vea abajo.

    var str = @"<ALEXA VER='0.9' URL='google.com/' HOME='0' AID='='>

<SD TITLE='A' FLAGS='DMOZ' HOST='google.com'> 
<TITLE TEXT='Google                             '/> 
<ADDR STREET='' CITY='' STATE='' ZIP='' COUNTRY='' />
<CREATED DATE='15-Sep-1997' DAY='15' MONTH='09' YEAR='1997'/>
<PHONE NUMBER='unlisted'/>
<OWNER NAME='unlisted'/>
<EMAIL ADDR='dns-admin@google.com'/>
<LANG LEX='en'/>
<LINKSIN NUM='704402'/>
<SPEED TEXT='1581' PCT='48'/>
<REVIEWS AVG='4.5' NUM='524'/>
<CHILD SRATING='0'/>
<ASSOCS>
<ASSOC ID='googlecom'/></ASSOCS>
</SD>

<KEYWORDS>
<KEYWORD VAL='Mountain View'/>
</KEYWORDS><DMOZ>
<SITE BASE='google.com/' TITLE='Google' DESC='Enables users to search the Web, Usenet, and images. Features include PageRank, caching and translation of results, and an option to find similar pages. The companys focus is developing search technology.'>
<CATS>
<CAT ID='Top/Computers/Internet/Searching/Search_Engines/Google' TITLE='Search Engines/Google' CID='374822'/>
<CAT ID='Top/Regional/North_America/United_States/California/Localities/M/Mountain_View/Business_and_Economy/Industrial/Computers_and_Internet' TITLE='Industrial/Computers and Internet' CID='625367'/>
<CAT ID='Top/World/Arabic/إقليمـي/الشرق_الأوسط/السعودية/تجارة_و_أقتصاد/كمبيوتر_و_إنترنت/محركات_بحث' TITLE='كمبيوتر و إنترنت/محركات بحث' CID='204954'/>
<CAT ID='Top/World/Français/Informatique/Internet/Recherche/Moteurs_de_recherche/Google' TITLE='Moteurs de recherche/Google' CID='247347'/>
</CATS>
</SITE>
</DMOZ>
<SD>
<POPULARITY URL='google.com/' TEXT='1'/>
<REACH RANK='1'/>
<RANK DELTA='+0'/>
</SD>
</ALEXA>";

    var item = XElement.Parse(str);

    var subSet = item.Elements("SD");

    var actualItem =  subSet.Where(x => x.Element("POPULARITY") != null).First();

    var value = actualItem.Element("POPULARITY").Attribute("TEXT").Value;

Espero que esto ayude

Respondido el 09 de enero de 11 a las 00:01

obtengo System.Exception._COMPlusExceptionCode -532459699 en var value = item.Element ("POPULARITY"). Attribute ("TEXT"). Value; lo mismo de arriba, no sé por qué - Robert

@robert, no estoy seguro de por qué estás recibiendo ese error. ¿Estás seguro de que está relacionado con el código? - scartag

str = "\ n \norte \norte \norte "var item = XElement.Parse (@str); var value = item.Element (" POPULARITY "). Attribute (" TEXT "). Value; sí, está relacionado con ese código, aquí en la siguiente línea estoy obteniendo esa cadena de error value1 = item.Element ("POPULARITY"). Attribute ("TEXT"). Value; lo mismo sucedió con la otra solución como esta Debug.WriteLine (root ["POPULARITY"]. Attributes ["TEXT"]. InnerXml); error bastante extraño, no estoy seguro de que tal vez esté relacionado con xml - Robert

@robert Podría ser un error xml ... difícil de decir ... podría publicar todos los datos xml (si es posible) - scartag

solo puedo escribir 600 letras, el xml es lo que obtienes en esta url: data.alexa.com/data?cli=10&dat=s&url=google.com aquí las últimas líneas: recherche / Google \ "CID = \" 247347 \ "/> \ n \norte \norte \norte \norte \norte \norte \norte \norte "- Robert

Algo como esto:

XmlDocument doc = new XmlDocument();
doc.LoadXml( @"<SD> <POPULARITY URL=""google.com/"" TEXT=""1""/> <REACH RANK=""1""/> <RANK DELTA=""+0""/> </SD> ");

XmlNode root = doc.FirstChild;

Debug.WriteLine(root["POPULARITY"].Attributes["TEXT"].InnerXml);

Respondido el 08 de enero de 11 a las 22:01

obtengo System.Exception._COMPlusExceptionCode -532459699 en Debug.WriteLine (root ["POPULARITY"]. Attributes ["TEXT"]. InnerXml); no sé por qué - Robert

sí, el error extraño no es un error xml, es un error extraño que nunca tuve, cada error en el código, muestra COMPlusExceptionCode - Robert

Puede probar:

XmlDocument doc = new Xmldocument(); 
doc.Load(stringWithYourXml);

XmlNode node = doc.SelectSingleNode("/SD/POPULARITY");
var val = node.Attributes["TEXT"].Value

Considere esto como una muestra (realice algunas comprobaciones más y detecte errores)

Respondido el 08 de enero de 11 a las 21:01

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.