HTML (Tidy で変換された XML と見なすことができます) を解析し、すべてのテキスト ノード (表示される Body タグ内のノードを意味します) と XML ファイル内のそれらの場所を取得します。場所は、フラット XML ファイル内のテキストの位置を意味します。
3 に答える
XmlTextReader
実装IXmlLineInfo
- ドキュメントを見るとIXmlLineInfo
、XML ファイルを読み取り、各ノードの場所を報告する例が示されています。
編集: 無関係だと言っている人にとっては、XML とは無関係かもしれませんが、人間にとってはそうではない可能性があります。特定のビットについて XML のどこを見ればよいかを人々に伝えようとしている場合、行番号と位置を報告すると非常に役立ちます。
XML を読み取るための SAX 仕様 (ほぼすべての XML ツールが実装) は、行番号と文字 (列) 番号を取得できる Locator を備えた ContentHandler を提供します。
int getColumnNumber()
Return the column number where the current document event ends.
int getLineNumber()
Return the line number where the current document event ends.
(C# の要件を見逃していました。上記の例は Java 用ですが、対応する C# インターフェイスを見つけようとします)。
イベントは文字列の場合があります。
SAX for .NET については、 http ://saxdotnet.sourceforge.net/ で説明されています。
XML ファイル内のテキストの位置に依存するべきではありません (適切なパーサーでは、空白は完全に無視されます)。できること (そしてすべきこと) は、XPathを使用して関心のあるノードを識別し、それらのノードからテキストを取り出すことです。テキスト ノードだけに関心がある場合は、クエリ "//text()" ですべてのテキスト ノードが取得されます。