Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c#无法提取具有xsd:schemaLocation属性的元素_C#_Xml_Xsd - Fatal编程技术网

c#无法提取具有xsd:schemaLocation属性的元素

c#无法提取具有xsd:schemaLocation属性的元素,c#,xml,xsd,C#,Xml,Xsd,请看下面几行XML代码。我的目标是提取interactior元素中的值: <HPRD3r xmlns="org:hprd:dtd:hprd3r"> <interactions> <entrySet xsi:schemaLocation="net:sf:psidev:mi http://psidev.sourceforge.net/mi/rel25/src/MIF25.xsd"> <interactionList>

请看下面几行XML代码。我的目标是提取
interactior
元素中的值:

<HPRD3r xmlns="org:hprd:dtd:hprd3r">
  <interactions>
    <entrySet xsi:schemaLocation="net:sf:psidev:mi http://psidev.sourceforge.net/mi/rel25/src/MIF25.xsd">
       <interactionList>
          <interactor>
尽管存在“entrySet”,但以下内容始终返回
null

root.Element(ns+"interactions").Element(ns+"entrySet");
另一方面,

root.Descendants(ns+"interactor");
不返回
null
,但即使文件中有多个
interactior
元素,也会给出一个零计数

问题似乎是
entrySet
中的属性
xsi:schemaLocation
。请有人给我解释一下上述问题背后的原因以及如何解决它们。
谢谢

我用一种简单的方法:root.subjections().Where(x=>x.Name.LocalName==“interactitor”).FirstOrDefault();谢谢,它成功了。然而,我仍然对我的方法为什么不起作用感到困惑。知道吗?获取默认名称空间“interactior”。这会给你一个线索。不过,粘贴的文档可能有问题,可能与真实文档不同。上面的文档没有为
entrySet
及其子体定义任何新名称空间
xsi:schemaLocation
本身不会添加任何默认的命名空间绑定。如果在真实文档中,
entrySet
标记中有
xmlns=“net:sf:psidev:mi”
,那么您确实需要使用适当的名称空间,而不是存储在
ns
中的名称空间。谢谢大家。“interactor”确实有另一个默认名称空间,我完全没有看到entrySet标记中的xmlns。吸取教训!
root.Descendants(ns+"interactor");