代码之家  ›  专栏  ›  技术社区  ›  Josh Smeaton

如何从XDocument中提取特定元素?

  •  1
  • Josh Smeaton  · 技术社区  · 16 年前

    我有以下文件:

    <SomeDoc Id="73" Protocol="rahrah" xmlns="http://schemas.company.com/rah/rah2/2005/">
      <Prop1>11111</Prop1> 
      <Prop2>77777</Prop2> 
      <Prop3>88888</Prop3> 
    </SomeDoc>
    

    我想提取Prop1中的值。

    var prop1 = xml.Element("Prop1");
    

    但是prop1被设置为null。我是否正在尝试正确提取元素?

    2 回复  |  直到 16 年前
        1
  •  3
  •   SLaks    16 年前

    我是这么想的 xml 是 XDocument 对象本身。

    一 对象包含根元素,而不是其子元素。你需要写信 xml.Root.Element("Prop1"); .

    编辑 :您还需要包括命名空间,如下所示:

    XNamespace ns = "http://schemas.company.com/rah/rah2/2005/";
    xml.Root.Element(ns + "Prop1");
    
        2
  •  0
  •   Hector Sosa Jr    16 年前

    我的猜测是XDocument没有将xml片段识别为有效文档。我认为XDocument期望 <?xml version="1.0"?>

    推荐文章