2

我的 XML 文档是TEI XML Brown Corpus中的Corpus.xml文件

我想选择s文档中的每个节点,这样我就可以遍历它们并提取数据。

问题是无论我尝试哪种方法,我都无法选择s节点!我试过了:

  • xml.Root.Descendants("s")
  • xml.Root.XPathSelectElements("s")
  • XPathDocument

但没有任何效果。我没有错误。返回的结果是一个空集!

4

1 回答 1

3

您的 XML 文档已声明命名空间:

<?xml version="1.0"?>
<teiCorpus xmlns="http://www.tei-c.org/ns/1.0" 
           xmlns:xi="http://www.w3.org/2001/XInclude">
  <!-- content -->
</teiCorpus>

所以你应该使用XNamespace来选择元素:

var xdoc = XDocument.Load(path_to_xml);
XNamespace ns = "http://www.tei-c.org/ns/1.0";
var elements = xdoc.Descendants(ns + "s");

查看Working with XML Namespaces以获取更多信息。

于 2013-04-26T09:15:59.337 回答