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");

詳細については、XML 名前空間の操作を参照してください。

于 2013-04-26T09:15:59.337 に答える