首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何查询特定父元素的子元素

如何查询特定父元素的子元素
EN

Stack Overflow用户
提问于 2010-08-16 23:01:16
回答 3查看 276关注 0票数 1

我正在开发asp.net移动应用程序。我使用XML作为数据库。我正在使用XML文件的以下部分通过LINQ to XML查询数据。

代码语言:javascript
运行
复制
<USER-INTERFACE-DEFINITION>
      <MIMICS>
       <MIMIC ID="1" NAME="Home">
        <SECTIONS>
         <SECTION ID ="1" NAME="System Health" CONTROL-TYPE="Button">
          <DATAITEMS>
          </DATAITEMS>
         </SECTION>
         <SECTION ID ="2" NAME="Network Status" CONTROL-TYPE="Button">
          <DATAITEMS>
          </DATAITEMS>
         </SECTION>
         <SECTION ID ="3" NAME="ESD Status" CONTROL-TYPE="Button">
          <DATAITEMS>
          </DATAITEMS>
         </SECTION>
         <SECTION ID ="4" NAME="DWPLEM" CONTROL-TYPE="Button">
          <DATAITEMS>
          </DATAITEMS>
         </SECTION>
         <SECTION ID="5" NAME="Manifolds" CONTROL-TYPE="Drowpdown">
          <DATAITEMS>
          </DATAITEMS>
         </SECTION>
         <SECTION ID ="6" NAME="Wells" CONTROL-TYPE="Drowpdown">
          <DATAITEMS>
          </DATAITEMS>
         </SECTION>
         <SECTION ID ="7" NAME="Alarms" CONTROL-TYPE="Button">
          <DATAITEMS>
          </DATAITEMS>
         </SECTION>
         <SECTION ID ="8" NAME="House Keeping" CONTROL-TYPE="Button">
          <DATAITEMS>
          </DATAITEMS>
         </SECTION>
        </SECTIONS>
       </MIMIC>
    </USER-INTERFACE-DEFINITION>

在上面的XML文件中,我想检索条件为MIMIC ID="1“的部分节点的"NAME”属性。我不想修改现有的XML文件。我将带有类似元素的node的服务器集合作为上面的XML文件。您能提供给我任何代码或链接,我可以通过它来解决上述问题吗?

EN

回答 3

Stack Overflow用户

发布于 2010-08-16 23:08:09

可能类似于(不是LINQ,但如果您愿意,可以将其与LINQ一起使用):

代码语言:javascript
运行
复制
var nodes = myXmlDoc.SelectNodes("/USER-INTERFACE-DEFINITION/MIMICS/MIMIC[@ID='1']/SECTION/@NAME");
foreach(var node in nodes)
{
    string name = node.Value;
    // do something with each name
}

(假设myXmlDoc是使用.Load(yourXmlFileHer)创建的,并且假定USER-INTERFACE-DEFINITION是XML的根,否则,请从//开始)

票数 0
EN

Stack Overflow用户

发布于 2010-08-16 23:10:02

我将尽我最大的努力,但您可能不想提供XML的相关部分,以使我们更容易。该部分是否具有此条件或名称。至少我可以帮你开始。

让我们从这个开始:

代码语言:javascript
运行
复制
var name = xml.Descendants<SECTION>.Where(s => s.id == 1).GetFirstChild<NAME>();

希望我没有离题,如果是这样的话,我想有人会给出一个更好的答案。

好的,在看了您的XML之后,我有一段路要走。而且,当我考虑它的时候,后代可能不会工作。

票数 0
EN

Stack Overflow用户

发布于 2010-08-16 23:13:55

假设XML保存在一个名为xml的字符串中,那么:

代码语言:javascript
运行
复制
var root = XElement.Parse(xml);
var results = root
            .Descendants("MIMIC")
            .Where( e => e.Attribute("ID").Value == "1" )
            .SelectMany(e => e.Descendants("SECTION").Attributes("NAME" ) ) ;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3494385

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档