Як я магу атрымаць гэтую vaue з XML?

У мяне ёсць гэты XML:


    
        2861
        Foppolo
        BG
        0
        LOMBARDIA
        
            6
            temporali isolati
            2
            1024.3
            78
            3000 m
            ND
            ESE
            4 nodi
            3
            0-10mm
        
        
            6
            temporali isolati
            11
            1024.9
            46
            3550 m
            ND
            SSO
            3 nodi
            3
            0-10mm
        

        ... xml continues...

і я хацеў бы, каб атрымаць значэнне тэмпература з другога вузла previsione на C #.

Спрабаваў з:

using (var wc = new WebClient())
{
    m_strFilePath = wc.DownloadString(xmlMeteo);
}

XmlDocument myXmlDocument = new XmlDocument();
myXmlDocument.LoadXml(m_strFilePath);

try
{
    Response.Write("Value : " + myXmlDocument.SelectSingleNode("//previsione[position()=0]//temp").Value);
}
catch { }   

але я не магу атрымаць яго.

1
Таксама справядліва,//previsione [становішча() = 2]/тэмп
дададзена аўтар BLUEPIXY, крыніца

3 адказы

Паспрабуйце змяніць запыт:

"//previsione[2]/temp"

і доступ .InnerText , а не .Value ( так .Value рэдка мае фактычнае значэнне , і ня дзеля элементаў).

клавішы [2] павінен (у адпаведнасці з просьбай) прынесці другі элемент; кнопка /тэмпература азначае "даччыны элемент з імем Temp".

3
дададзена
Спрабаваў. Нічога .. :(
дададзена аўтар markzzz, крыніца
Так, здаецца, працуе! Якая мова я выкарыстаў для запыту гэта значэнне? Гэта не XPath ...
дададзена аўтар markzzz, крыніца
@markzzz см рэдагавання; р
дададзена аўтар Marc Gravell, крыніца
@markzzz ды гэта; 1.0 спецыфікацыі, раздзел 2.5; Скарочаны сінтаксіс; прамая спасылка: w3.org/TR/xpath/#path-abbrev
дададзена аўтар Marc Gravell, крыніца

Падобна на тое, ваша радок XPath няправільна - двайны слеш ( «//»), калі выкарыстоўваецца там, дзе ў вас ёсць гэта, каб атрымаць нашчадак (PHP »отн =" NOFOLLOW "> http://www.tizag.com/xmlTutorial/xpathdescendant.php ).

Паспрабуйце проста выкарыстоўваць адзін слэш, як толькі атрымаюць дзіця.

//previsione[2]/temp

Таксама - XSLT элементы не роўныя нулю на аснове, так што элементы пачынаюць у пазіцыі 1 =

Вось сайт, я лічу, выдатна падыходзіць для атрымання XPATH радкі Гэта таксама фарматы xml занадта вялікі! !

http://xmltoolbox.appspot.com/index.html

1
дададзена
Яна не працуе ...
дададзена аўтар markzzz, крыніца
Глядзіце рэдагаванне - шкада, што я прапусціў прачытаць частка аб тым, што вы хацелі 2-й элемент! Дзякуючы @Marc Gravell за ўказанне, што з!
дададзена аўтар Stuart.Sklinar, крыніца

Вузел палажэнняў XPath засноўвае на 1, а не 0. ласка, паспрабуйце:

myXmlDocument.SelectSingleNode("//previsione[2]/temp/text()").Value;
1
дададзена