0
 public partial class Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

        try
        {
            DataSet ds = new DataSet();
            ds.ReadXml(@"http://tecnologia.ig.com.br/rss.xml");

            XmlDocument doc = new XmlDocument();
            XmlUrlResolver resolver = new XmlUrlResolver();
            resolver.Credentials = new System.Net.NetworkCredential("bruno", "*****");//intentionally hiding real password from stackoverflow
            doc.XmlResolver = resolver;

            foreach (DataRow dr in ds.Tables["item"].Rows)
            {
                Response.Write("Item TITLE: " + dr["title"].ToString() + "<br />");
                Response.Write("Descrição : " + dr["description"].ToString() + "<br />");
                Response.Write("Data de Publicação: " + dr["pubDate"].ToString() + "<br />");
            }
        }
        catch (Exception ex)
        {
            throw new Exception(ex.Message);
        }
    }
}

コードを実行すると、システムが 2 つのエラー
1 - 「リンク」という名前の列は既にこの DataTable に属しています: ネストされたテーブル名を同じ名前に設定できません。2 - リモート サーバーがエラーを返しました: (407) プロキシ認証が必要です。

ありがとう!

4

2 に答える 2

1

RSS フィードを読むためのアイデアを提供してください:

  1. WebRequest および WebReponse オブジェクトを作成します。

    WebRequest request=WebRequest.Create("your url");
    WebReponse response=request.GetRespose();
    
  2. XML ドキュメントを作成し、応答オブジェクトからのストリームを使用して XML ドキュメントをロードします。

    Stream rssStream=response.GetResponseStream();
    XMLDocument xmlDoc=new XMLDocument();
    xmlDoc.Load(rssStream);
    
  3. XMLNodeList を使用して、XMLDocument から一致する XML ノードを取得します。

    XmlNodeList xmlNodeList = xmlDoc.SelectNodes("your XPath expression");
    
  4. これで、RSS フィード アイテムをループして、必要なものを取得できます。

     for (int i = 0; i < xmlNodeList.Count; i++)
        {
            XmlNode xmlNode;
    
            xmlNode = xmlNodeList.Item(i).SelectSingleNode("ProductName");
            //xmlNode.InnerText;
        }
    
于 2013-08-13T13:02:07.587 に答える
0

2番目の問題:

おそらく企業のプロキシを持っているでしょう。web.config でこれを使ってみてください:

<system.net>
  <defaultProxy useDefaultCredentials="true" />
</system.net>

1番目の問題については:

http://forums.asp.net/t/1220157.aspx/1

この問題は、XML ではノードの重複が許可され、データ テーブルでは列の重複が許可されないため、データ テーブルを直接解析できないことが原因である可能性があります。

データ テーブル ルートをはるかに下る前に、XML データの解析と使用について調査することをお勧めします。

于 2013-08-13T12:58:06.513 に答える