我的XML文档是TEI XML Brown Corpus
中的 Corpus.xml 文件我想选择文档中的每个s
节点,这样我就可以迭代它们并提取数据。
问题在于无论我尝试哪种方法,我都无法选择s
个节点!我试过了:
xml.Root.Descendants("s")
xml.Root.XPathSelectElements("s")
XPathDocument
但没有任何作用。我没有错。返回的结果是空集!
答案 0 :(得分:2)
您的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以获取更多信息。