我有以下XDocument:
<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。我是否正在尝试正确提取元素?
答案 0 :(得分:3)
我假设xml
是XDocument
对象本身。
XDocument
对象包含根元素,而不是其子元素。你需要写xml.Root.Element("Prop1");
。
编辑:您还需要包含命名空间,如下所示:
XNamespace ns = "http://schemas.company.com/rah/rah2/2005/";
xml.Root.Element(ns + "Prop1");
答案 1 :(得分:0)
您可以发布用于填充xml变量的代码吗?
我的猜测是XDocument没有将xml片段识别为有效文档。我认为XDocument期待<?xml version="1.0"?>
根节点。您可能需要使用XmlTextReader而不是XDocument。