質問

私は何千人ものSGML文書を、さもないこともありません。んが、一定の要素の書類が詳細に行って負荷読み込みしXDocument,XMLDocument、でもStreamReaderとって異なる様々なXMLExceptionます。

のような"'['とは想定外のトークンである。".なぜですか?いての文書DOCTYPEように

<!DOCTYPE RChapter PUBLIC "-//LSC//DTD R Chapter for Authoring//EN" [] >

とを学ぶことができましたが、"[]"のニーズにおいても有効です。再度な制御の創出を書いている"割れ"が設置されていることもにデータがってきた。別の例では、"閉じて"の要素、例えば:

<Caption>Plants, and facilities<hardhyphen><hyphen>Inspection.</Caption>

このXMLExceptionは"、"ハイフン'開始タグライン27日に一致"しない、終了タグのキャプション'.線27日に位置58." 明らかです。

しかしその後の質問は、どのようにすることができますから、一緒に試してみましょうる要素はこれらの文献ではなく、出会っXMLExceptions.はSAXパーサの右す。については基本的に開いている文書、権利の要素にたい(気にせずに何かなど)、プルのデータがあります。べきかを忘れて構文解析とXMLDocument,XDocument、ただ単純な文字列置換のような

str.Replace("<hardhypen><hyphen>", "-")

そして負荷でのXML parsers.合に戦略を聞かせてください。

役に立ちましたか?

解決

の課題であることを行う構文解析SGMLとXMLツールです。彼らは同じではありません。を利用する場合はXMLツール/言語へのアクセスデータは、おそらく変換する必要があるのSGMLをXMLにして構文解析します。

理想的にはうまのいずれかを使用言語支援ツールSGML(OmniMark)も扱うことのできる"XMLのように"データ(鋸から最初の答えはどうでしょうか?).

この写真っ直ぐようになりましたが、難である。特にんに複数のdoctypes(DTDます。(もしなければならないと思うか"well-formed"SGML.その要素をすることになりました。て正しく入れ子がSGML ついてのDTD.)

この違いSGMLやXMLが一通りそろっています。(あるいはこのルートでするのに役立つかもしれない情報提供を目的としています。:

  1. DOCTYPE宣言

    のDOCTYPE宣言の例では、完全に有効なSGML doctype.の [] (内部サブセット)になっています。の場合についての宣言の内部サブセット(通常実体宣言)には、以上がっていdoctype宣言の形式をサポートしています。

    問題は、XMLパーサできないシステム識別子の宣言です。XML doctype宣言は、システム識別子が必要がある場合は公開識別子です。は、SGML doctype宣言が必要ありません。

    ボトムライン:場合を除きが必要なXML構文解析をDTD/Schemaまたは宣言の内部サブセット、ストリップのdoctype宣言です。の場合はXMLではないものを有効な、少なくとも追加する必要があり、システム識別子です。トなどの <?xml ...?> 処理命令イベントを適応させます.

  2. 要素がなく終了タグ

    <hardhyphen><hyphen> 要素の有効なSGML.SGML DTDのできるタグを指定しの最小化を目的としたつけることはしないということができるかどうかを指定し、終了タグが必要です。(も作ることができ、開始タグのオプション、それに夢中にしてくれます。) XMLおいてこれらの要素のような <hardhyphen/> または <hardhyphen></hardhyphen>)

    最高については、御社のSGML DTDからの元素オプションの終了タグです。タグの最小化を指定した直後の要素の名前の要素の宣言です。A"-"のタグが必要です。するo(文字'oh')このタグはオプションです。例えばだ <!ELEMENT hyphen - o (#PCDATA)>, この開始タグを要求する- の終了タグはオプション(o).された場合 <!ELEMENT hyphen - - (#PCDATA)>, の開始と終了タグが必要です。

    ボトムライン:正しくすべての要素がない終了タグ

  3. 処理命令

    加工指示書(PI)にSGMLないの ? 時休館のようなXMLいます。る必要があります追加の ?.

    例SGML PI: <?asdf jkl>

    例XML PI: <?asdf jkl?>

  4. 包有物の対象外商品もござ

    いろんのこと、SGML DTDが指定でき要素の宣言その他の元素はどこでも、という要素はなりません。ここにある、世界に向けて発信する場合対象のXMLニーズへの解析をDTD;XML DTDのできない包有物の対象外商品もござ.

    この包含関係のような:

    <!ELEMENT chapter - - (section)+ +(revst|revend)>

    このことはいう revst または revend 許可などの内部 chapter.の場合は要素の宣言した -(revst|revend), このよう revst または revendない 可どこでも内部の chapter.

武器agiは、dexで下がらないboxerぐ.

他のヒント

うん、使用鋸山するます。

ファイルに「あらすじ」の下のコードをコピーしてスクロールし、そのページ上のビットのダウンと、xml-parser.rbを言います。あなたがMac上でなら次に、使用してファイルを実行し、ターミナルから、(。RubyはすでにMacでインストールされています)、ランgem install nokogiri、および:。ruby xml-parser.rb

また、ターミナルからirb権利を入力し、require 'nokogiri'とリアルタイムで鋸山APIで遊んで開始することができます。お奨めは、対話型のRubyが大好きです。 :)

は、Windowsを使っているのであれば、これを試してみてくださいのRubyインストーラのWindows のます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top