微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从 XML 表打印数量到 asp.net

如何解决从 XML 表打印数量到 asp.net

我试图让它发挥作用,但收效甚微,我尝试使用一些示例,但没有一个完全符合我的要求,简单地说,我知道我必须做什么,我只是不知道了解如何去做。

我试图从一个 xml 表中获取大于 10 的数量,然后我试图打印它们存在的数量

XML 文件示例:

<PurchaseCollection xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<purchases>
<Purchase>
  <id>1</id>
  <fullName>Annet Stevens</fullName>
  <emailAddress>annet@stevens.com</emailAddress>
  <productname>Sandal wood</productname>
  <unitprice>500</unitprice>
  <quantity>11</quantity>
</Purchase>
<Purchase>
  <id>2</id>
  <fullName>Bert Waywood</fullName>
  <emailAddress>bert@waywood.com</emailAddress>
  <productname>Sandal Leaf</productname>
  <unitprice>17</unitprice>
  <quantity>25</quantity>
</Purchase>
</purchases>
</PurchaseCollection>

正在使用的 ASP.Net 后端代码示例。

    //Attempt to count quantity greater than 10.
    const string FILENAME1 = "GoodXML.xml";
    String file1 = Path.Combine(AppDomain.CurrentDomain.BaseDirectory,FILENAME);

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

    XmlNode quantity = doc.SelectSingleNode("/PurchaseCollection/purchases/Purchase/[quantity>10]");
    string comments = quantity.InnerText;

    //Req (using System.Xml;)

    Label1.Text = comments (Total amount of quantity here.);

我正在使用带有绑定的网格视图表,这可能会导致问题,但由于它在一个单独的部分中,我不认为这是一个案例。

前端代码示例:

<p><asp:Label ID="Label1" runat="server" Text="" ></asp:Label></p>

目前我遇到了“表达式必须评估为节点错误”,我理解这是因为它无法找到“数量”的节点。

我相信我已经完成了大约 80%,我希望更有经验的人可以提供见解。 请不要过度设计解决方案,理想情况下,示例越简单越好

解决方法

最好使用 LINQ to XML API。自 2007 年以来,它在 .Net Framework 中可用。

c#

void Main()
{
    const string FILENAME = @"e:\temp\GoodXML.xml";
    XDocument xdoc = XDocument.Load(FILENAME);
    
    int counter = xdoc.Descendants("quantity")
        .Where(x => Convert.ToInt32(x.Value) > 10)
        .Count();
    
    Console.WriteLine("Counter: {0}",counter);
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。