LINQ to XML Select 语句 - 无结果

发布于 2024-11-26 23:15:24 字数 1648 浏览 0 评论 0原文

可能的重复:
使用 LINQ 解析 XML 元素

有一个如下所示的 XML 文档:

<?xml version="1.0" encoding="utf-8" ?>
<TestDataset xmlns="http://tempuri.org/TestDataset.xsd">
  <TaxRate>
    <Code>GST</Code>
    <Rate>0.05</Rate>
    <LastModified>2010-03-31T17:03:24.063-04:00</LastModified>
    <Deleted>0</Deleted>
    <AbbreviationEN>GST</AbbreviationEN>
    <AbbreviationFR>GST</AbbreviationFR>
    <GLSubCode>GST</GLSubCode>
  </TaxRate>
  <TaxRate>
    <Code>PST</Code>
    <Rate>0.08</Rate>
    <LastModified>2010-03-31T17:03:24.063-04:00</LastModified>
    <Deleted>0</Deleted>
    <AbbreviationEN>PST</AbbreviationEN>
    <AbbreviationFR>PST</AbbreviationFR>
    <GLSubCode>PST</GLSubCode>
  </TaxRate>
</TestDataset>

我 尝试使用以下查询选择它的内容:

XDocument data = LoadTestData("TaxRate.xml");
var taxdata = (from x in data.Elements("TaxRate")
              select new
              {
                  Code = x.Element("Code").Value,
                  Rate = x.Element("Rate").Value,
                  AbbreviationEN = x.Element("AbbreviationEN").Value,
                  AbbreviationFR = x.Element("AbbreviationFR").Value,
                  GLSubCode = x.Element("GLSubCode").Value
               }).ToList();

但是我一直没有得到任何结果,LoadTestData 加载 XML 文档正常。

Possible Duplicate:
Parse XML Elements with LINQ

I have an XML document that looks like this:

<?xml version="1.0" encoding="utf-8" ?>
<TestDataset xmlns="http://tempuri.org/TestDataset.xsd">
  <TaxRate>
    <Code>GST</Code>
    <Rate>0.05</Rate>
    <LastModified>2010-03-31T17:03:24.063-04:00</LastModified>
    <Deleted>0</Deleted>
    <AbbreviationEN>GST</AbbreviationEN>
    <AbbreviationFR>GST</AbbreviationFR>
    <GLSubCode>GST</GLSubCode>
  </TaxRate>
  <TaxRate>
    <Code>PST</Code>
    <Rate>0.08</Rate>
    <LastModified>2010-03-31T17:03:24.063-04:00</LastModified>
    <Deleted>0</Deleted>
    <AbbreviationEN>PST</AbbreviationEN>
    <AbbreviationFR>PST</AbbreviationFR>
    <GLSubCode>PST</GLSubCode>
  </TaxRate>
</TestDataset>

And I am trying to select it's contents with the following query:

XDocument data = LoadTestData("TaxRate.xml");
var taxdata = (from x in data.Elements("TaxRate")
              select new
              {
                  Code = x.Element("Code").Value,
                  Rate = x.Element("Rate").Value,
                  AbbreviationEN = x.Element("AbbreviationEN").Value,
                  AbbreviationFR = x.Element("AbbreviationFR").Value,
                  GLSubCode = x.Element("GLSubCode").Value
               }).ToList();

However I keep getting no results, LoadTestData is loading the XML document fine.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

倒数 2024-12-03 23:15:24

您忘记包含命名空间:

XNamespace ns = "http://tempuri.org/TestDataset.xsd";
XDocument data = LoadTestData("TaxRate.xml");
var taxdata = (from x in data.Descendants(ns + "TaxRate")
              select new
              {
                  Code = x.Element(ns + "Code").Value,
                  Rate = x.Element(ns + "Rate").Value,
                  AbbreviationEN = x.Element(ns + "AbbreviationEN").Value,
                  AbbreviationFR = x.Element(ns + "AbbreviationFR").Value,
                  GLSubCode = x.Element(ns + "GLSubCode").Value
               }).ToList();

尽管 XML 文件中的命名空间是默认命名空间,但您仍然需要将其包含在查询中。

You forgot to include the namespace:

XNamespace ns = "http://tempuri.org/TestDataset.xsd";
XDocument data = LoadTestData("TaxRate.xml");
var taxdata = (from x in data.Descendants(ns + "TaxRate")
              select new
              {
                  Code = x.Element(ns + "Code").Value,
                  Rate = x.Element(ns + "Rate").Value,
                  AbbreviationEN = x.Element(ns + "AbbreviationEN").Value,
                  AbbreviationFR = x.Element(ns + "AbbreviationFR").Value,
                  GLSubCode = x.Element(ns + "GLSubCode").Value
               }).ToList();

Although the namespace in your XML file is the default namespace, you still need to include it in your query.

冰火雁神 2024-12-03 23:15:24

您必须尊重名称空间:

XNamespace ns = "http://tempuri.org/TestDataset.xsd";
var taxdata = (from x in data.Elements(ns+"TaxRate")
          select new
          {
              Code = x.Element(ns+"Code").Value,
              Rate = x.Element(ns+"Rate").Value,
              AbbreviationEN = x.Element(ns+"AbbreviationEN").Value,
              AbbreviationFR = x.Element(ns+"AbbreviationFR").Value,
              GLSubCode = x.Element(ns+"GLSubCode").Value
           }).ToList();

You have to respect the namespace:

XNamespace ns = "http://tempuri.org/TestDataset.xsd";
var taxdata = (from x in data.Elements(ns+"TaxRate")
          select new
          {
              Code = x.Element(ns+"Code").Value,
              Rate = x.Element(ns+"Rate").Value,
              AbbreviationEN = x.Element(ns+"AbbreviationEN").Value,
              AbbreviationFR = x.Element(ns+"AbbreviationFR").Value,
              GLSubCode = x.Element(ns+"GLSubCode").Value
           }).ToList();
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文