2012-11-11 70 views
-1

我試圖用這個網址...如何將URL轉換爲XML

http://www.webservicex.net/stockquote.asmx/GetQuote?Symbol=T

它就像一個XML,但它是不正確的格式,我希望能夠以使用XML格式來顯示它...

這是我的代碼現在

protected void btnGetResult_Click(object sender, EventArgs e) 
{ 
    XPathNavigator nav; 
    XmlDocument myXMLDocument = new XmlDocument(); 
    String stockQuote = "http://www.webservicex.net/stockquote.asmx/GetQuote?Symbol=T" + txtInfo.Text; 
    myXMLDocument.Load(stockQuote); 

    // Create a navigator to query with XPath. 
    nav = myXMLDocument.CreateNavigator(); 
    nav.MoveToRoot(); 
    nav.MoveToFirstChild(); 

    do 
    { 
     //Find the first element. 
     if (nav.NodeType == XPathNodeType.Element) 
     { 
      //Move to the first child. 
      nav.MoveToFirstChild(); 

      //Loop through all the children. 
      do 
      { 
       //Display the data. 
       txtResults.Text = txtResults.Text + nav.Name + " - " + nav.Value + Environment.NewLine; 
      } while (nav.MoveToNext()); 
     } 
    } while (nav.MoveToNext()); 
} 

回答

0

看一看收到響應的源。內容(與rootnode有關的所有內容)都不是XML。標籤是HTML實體:<>。將該直接加載到您的文檔中XmlDocument會將您之後的所有內容視爲簡單文本。

下面的示例下載在線資源,用標籤替換HTML實體並重新加載XML文檔,然後由XPath訪問該文檔。

string url = "http://www.webservicex.net/stockquote.asmx/GetQuote?Symbol=T"; 

XmlDocument doc = new XmlDocument(); 
doc.Load(url); 

string actualXml = doc.OuterXml; 
actualXml = actualXml.Replace("&lt;", "<"); 
actualXml = actualXml.Replace("&gt;", ">"); 
doc.LoadXml(actualXml); 

我沒有考慮你的示例源代碼的第二部分。但我想有一個合適的XML文檔將是第一步。