代码之家  ›  专栏  ›  技术社区  ›  TruMan1

如何使用xmlReader.create获取XML属性?

  •  0
  • TruMan1  · 技术社区  · 14 年前

    我正在使用xmlReader.create从RSS XML文件中检索数据。然后我将这些数据放入数据集中,并将其绑定到ListView:

    XmlReader xmlReader = XmlReader.Create(this.RssUrl);
    XmlDataDocument xdoc = new XmlDataDocument();
    xdoc.DataSet.ReadXml(xmlReader, XmlReadMode.InferSchema);
    

    问题是,我试图获取的字段之一位于属性中。如何从下面的“media:thumbnail”中获取“url”属性?

    <item> 
      <title>Some Title</title> 
      <description>Content goes here...</description> 
      <link>http://www.mydomain.com?id=439</link> 
      <guid>453252362</guid> 
      <pubDate>Sat, 21 Aug 2010 11:00:00 GMT</pubDate> 
      <media:thumbnail url="http://www.mydomain.com/catalog/1111tn.jpg" /> 
      <media:content url="http://www.mydomain.com/catalog/1111.jpg" /> 
    </item> 
    

    我是这样绑定它的,但是media:thumbnail显然是空的,因为我需要通过以下方式获取属性:

    void singleItem_DataBinding(object sender, System.EventArgs e)
    {
        Label singleItem = (Label)sender;
        singleItem.Text = String.Format(@"                    
            <div class=""rlvI content"">
                <div class=""image"">
                    <a href=""{0}""><img src=""{1}"" alt=""{2}""></a>
                </div>
                <p>
                    <span class=""title"">{2}</span><br />
                    {3}
                </p>
            </div>",
            ((singleItem.NamingContainer as RadListViewDataItem).DataItem as DataRowView)["link"],
            ((singleItem.NamingContainer as RadListViewDataItem).DataItem as DataRowView)["media:thumbnail"],
            ((singleItem.NamingContainer as RadListViewDataItem).DataItem as DataRowView)["title"],
            ((singleItem.NamingContainer as RadListViewDataItem).DataItem as DataRowView)["description"]);
    }
    

    有人能帮忙吗?

    1 回复  |  直到 14 年前
        1
  •  0
  •   Richard    14 年前

    如何从下面的“media:thumbnail”中获取“url”属性?

    你需要通读文件( while (xmlReader.Read() {...} )直到到达具有属性的元素。然后你可以使用像 ReadAttributeValue .

    在读取循环中,您可以匹配节点类型、节点名称和命名空间,以确保您拥有正确的元素。