簡體   English   中英

如何從Web響應中讀取XML?

[英]How to read xml from web response?

我正在嘗試從Web響應中讀取xml並從中獲取選定的節點(即鏈接)。 到目前為止,這是我所得到的,並且它將“ System.Xml.XmlElement”顯示為輸出。

WRequest方法,使用Web請求將POST請求發送到url,並返回字符串xml響應,例如:

<status> <code>201</code>
<resources_created>
<link href="####" rel="############" title="####" /> 
</resources_created> 
<warnings> <warning>display_date is read-only</warning> </warnings> 
</status>

ReadUri2方法

public static string readUri2()
    {
        string uri = "";
        string xml = WRequest();

        XmlDocument xmlDoc = new XmlDocument();
        xmlDoc.LoadXml(xml);

        XmlNode elem = xmlDoc.DocumentElement.FirstChild;
        uri = elem.ToString();
        return uri;

        }

PageLoad調用

 protected void Page_Load(object sender, EventArgs e)
    {
        string uri = readUri2();
        Label1.Text = Server.HtmlEncode(uri);

    }

任何幫助將不勝感激。 非常感謝。

緊迫的問題(您看到System.Xml.XmlElement的原因)是您在XmlElement上調用ToString ,但它不會覆蓋該方法。 您可能想改為使用InnerXmlOuterXml屬性:

XmlNode elem = xmlDoc.DocumentElement.FirstChild;
return elem.OuterXml;

那將返回第一個孩子的全部XML,即code 接下來,您將要更改要查找的元素,並獲取正確的屬性。

附帶說明一下,我強烈建議改用LINQ to XML-這是通常更好的XML API。 例如:

// TODO: Rename the `WRequest` method; that's horrible.
var document = XDocument.Parse(WRequest());
var href = document.Descendants("link").Single().Attribute("href").Value;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM