想要从XElements中提取标签并在ASP.NET Webform上显示为网格

时间:2016-01-19 07:12:52

标签: c# asp.net xml xslt webforms

我正在编写云服务并使用ASP.NET Web角色和WebForm。

在我的代码中,我在XElement中获取数据,现在我想从中提取数据并在WebForm上以表格或网格格式显示

我的XElement包含少量<entry>个标签,如下所示:

<entry xml:base="https://STORAGE_ACCOUNT.table.core.windows.net/"           xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices"     xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"         m:etag="W/"datetime'2013-09-08T07%3A19%3A07.2189243Z'""    xmlns="http://www.w3.org/2005/Atom">
  <id>https://STORAGE_ACCOUNT.table.core.windows.net/authors(PartitionKey='Beckett',RowKey='Molloy')</id>
  <title type="text"></title>
  <updated>2013-09-08T07:19:07Z</updated>
  <author>
    <name />
  </author>
  <link rel="edit" title="authors" href="authors(PartitionKey='Beckett',RowKey='Molloy')" />
  <category term="STORAGE_ACCOUNT.authors" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />
  <content type="application/xml">
    <m:properties>
      <d:PartitionKey>Beckett</d:PartitionKey>
      <d:RowKey>Molloy</d:RowKey>
      <d:Timestamp m:type="Edm.DateTime">2013-09-08T07:19:07.2189243Z</d:Timestamp>
      <d:Artist>Beckett</d:Artist>
      <d:Title>Molloy</d:Title>
    </m:properties>
  </content>
</entry>

我想提取以下标签

<d:Artist>Beckett</d:Artist>
<d:Title>Molloy</d:Title>

并在ASPX webform上以表格格式显示数据,如下所示

Artist   Title
Beckett  Moelly

如何在我的代码中执行此操作?

我看到了一些绑定到Dataset的例子,但它适用于某些驱动器上的xml文件但是我的代码中有它。我也看到人们建议使用XSLT将XML转换为HTML然后显示它,但我不知道如何在代码中执行此操作。请提供我的指示

1 个答案:

答案 0 :(得分:0)

好吧,假设您确实希望使用LINQ to XML而不是其他选项来实现这一点,那很简单:

XNamespace atom = "http://www.w3.org/2005/Atom"
XNamespace d = "http://schemas.microsoft.com/ado/2007/08/dataservices"

foreach (var entry in element.Descendants(atom + "entry"))
{
    var artist = (string)entry.Descendants(d + "Artist").Single();
    var title = (string)entry.Descendants(d + "Title").Single();

    // ... do something with these values
}