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