LinqXML 通过属性过滤 - 初学者

发布于 2024-09-27 13:45:26 字数 2465 浏览 3 评论 0原文

我有下面的 XML 文档

 <Documents Databasename="Type1">
<Document>
  <Documentnumber>xxxxxx</Documentnumber>
  <Documentname>xxxxxx</Documentname>
  <DocumentExtension>xxxxxx</DocumentExtension>
  <ImportAction>xxxxxx</ImportAction>
  <Authorname>xxxxxx</Authorname>
  <Practicegroup>xxxxxx</Practicegroup>
  <Createddate>xxxxxx</Createddate>
  <Createdby>xxxxxx</Createdby>
  <Modifieddate>xxxxxx</Modifieddate>
  <Modifiedby>xxxxxx</Modifiedby>
  <Lastaccessddate>xxxxxx</Lastaccessddate>
  <Comments />
  <Sector>Unknown</Sector>
  <Source>Unknown</Source>
  <Quality>Unknown</Quality>
  <KnowHowContentType>Unknown</KnowHowContentType>
  <ActualAutors />
  <SubmittedBy />
  <NumberofAccess>0</NumberofAccess>
  <AreasofLaw />
</Document>
<Document>
  <Documentnumber>xxxxxx</Documentnumber>
  <Documentname>xxxxxx</Documentname>
  <DocumentExtension>xxxxxx</DocumentExtension>
  <ImportAction>xxxxxx</ImportAction>
  <Authorname>xxxxxx</Authorname>
  <Practicegroup>xxxxxx</Practicegroup>
  <Createddate>xxxxxx</Createddate>
  <Createdby>xxxxxx</Createdby>
  <Modifieddate>xxxxxx</Modifieddate>
  <Modifiedby>xxxxxx</Modifiedby>
  <Lastaccessddate>xxxxxx</Lastaccessddate>
  <Comments />
  <Sector>Unknown</Sector>
  <Source>Unknown</Source>
  <Quality>Unknown</Quality>
  <KnowHowContentType>Unknown</KnowHowContentType>
  <ActualAutors />
  <SubmittedBy />
  <NumberofAccess>0</NumberofAccess>
  <AreasofLaw />
</Document> 

xxxxxx xxxxxx xxxxxx xxxxxx xxxxxx xxxxxx xxxxxx xxxxxx xxxxxx xxxxxx xxxxxx 未知 未知 未知 未知 0 xxxxxx xxxxxx xxxxxx xxxxxx xxxxxx xxxxxx xxxxxx xxxxxx xxxxxx xxxxxx xxxxxx 未知 未知 未知 未知 0

我想为给定属性Databasename 选择DocumentNumber、DocumentExtension。如果我解释了我自己,请告诉我。

I have got below XML document

 <Documents Databasename="Type1">
<Document>
  <Documentnumber>xxxxxx</Documentnumber>
  <Documentname>xxxxxx</Documentname>
  <DocumentExtension>xxxxxx</DocumentExtension>
  <ImportAction>xxxxxx</ImportAction>
  <Authorname>xxxxxx</Authorname>
  <Practicegroup>xxxxxx</Practicegroup>
  <Createddate>xxxxxx</Createddate>
  <Createdby>xxxxxx</Createdby>
  <Modifieddate>xxxxxx</Modifieddate>
  <Modifiedby>xxxxxx</Modifiedby>
  <Lastaccessddate>xxxxxx</Lastaccessddate>
  <Comments />
  <Sector>Unknown</Sector>
  <Source>Unknown</Source>
  <Quality>Unknown</Quality>
  <KnowHowContentType>Unknown</KnowHowContentType>
  <ActualAutors />
  <SubmittedBy />
  <NumberofAccess>0</NumberofAccess>
  <AreasofLaw />
</Document>
<Document>
  <Documentnumber>xxxxxx</Documentnumber>
  <Documentname>xxxxxx</Documentname>
  <DocumentExtension>xxxxxx</DocumentExtension>
  <ImportAction>xxxxxx</ImportAction>
  <Authorname>xxxxxx</Authorname>
  <Practicegroup>xxxxxx</Practicegroup>
  <Createddate>xxxxxx</Createddate>
  <Createdby>xxxxxx</Createdby>
  <Modifieddate>xxxxxx</Modifieddate>
  <Modifiedby>xxxxxx</Modifiedby>
  <Lastaccessddate>xxxxxx</Lastaccessddate>
  <Comments />
  <Sector>Unknown</Sector>
  <Source>Unknown</Source>
  <Quality>Unknown</Quality>
  <KnowHowContentType>Unknown</KnowHowContentType>
  <ActualAutors />
  <SubmittedBy />
  <NumberofAccess>0</NumberofAccess>
  <AreasofLaw />
</Document> 

xxxxxx
xxxxxx
xxxxxx
xxxxxx
xxxxxx
xxxxxx
xxxxxx
xxxxxx
xxxxxx
xxxxxx
xxxxxx

Unknown
Unknown
Unknown
Unknown

0

xxxxxx
xxxxxx
xxxxxx
xxxxxx
xxxxxx
xxxxxx
xxxxxx
xxxxxx
xxxxxx
xxxxxx
xxxxxx

Unknown
Unknown
Unknown
Unknown

0

I want to select DocumentNumber, DocumentExtension for a given attribute Databasename. Please let me know if I explained my self.

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

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

发布评论

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

评论(1

分開簡單 2024-10-04 13:45:26

我没有太多使用 Linq to XML,所以这可能不是最好的方法,但它似乎有效:

string xml = @"
<root>
    <Documents Databasename='Type1'>
    <Document>
      <Documentnumber>1234</Documentnumber>";
      // etc..

XDocument xmlDoc = XDocument.Parse(xml);

var output = from item in xmlDoc.Descendants()
             where item.Name == "Document"
             && item.Parent.Attribute("Databasename").Value == "Type1"
             select new { Number = (string)item.Element("Documentnumber").Value,
                          Extension = item.Element("DocumentExtension").Value
             };

foreach (var item in output) {
    Console.WriteLine(item);
}

请注意,我在 XML 中添加了一个额外的“root”元素以使其工作(假设有多个“Documents”元素) )。

I haven't used Linq to XML much, so this probably isn't the best way, but it seems to work:

string xml = @"
<root>
    <Documents Databasename='Type1'>
    <Document>
      <Documentnumber>1234</Documentnumber>";
      // etc..

XDocument xmlDoc = XDocument.Parse(xml);

var output = from item in xmlDoc.Descendants()
             where item.Name == "Document"
             && item.Parent.Attribute("Databasename").Value == "Type1"
             select new { Number = (string)item.Element("Documentnumber").Value,
                          Extension = item.Element("DocumentExtension").Value
             };

foreach (var item in output) {
    Console.WriteLine(item);
}

Note that I added an extra 'root' element to the XML to make this work (assuming multiple 'Documents' elements).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文