1

xml ファイルのクリーニング 予期しない結果が得られました。tagsoup が一部のプロパティを孤立させ、親タグを閉じるのが早すぎました。また、親タグの名前を小文字にします。

タグスープの前:

<Objects>
    <Object>
      <ObjectID>240</ObjectID>
      [...]
      <Status>Not Ready</Status>
      <Title>Some description which includes word/word, 22,000</Title>
      <Url>http://example.com/withquerystring?id=240&amp;other=1&amp;url=http%3A%2F%2Fredirected.example.com%2F40</Url>
      [...]
      <Owner>
        <Name>JOHN MARSHALL, MR</Name>
      </Owner>
    </Object>
    <Object>
      <ObjectID>122</ObjectID>
      [...]

タグスープの後:

<Objects>
    <object>
      <ObjectID>240</ObjectID>
      [...]
      <Status>Not Ready</Status>
    </object>
    <Title>Some description which includes word/word, 22,000</Title>
    <Url>http://example.com/withquerystring?id=240&amp;other=1&amp;url=http%3A%2F%2Fredirected.example.com%2F40</Url>
    [...]
    <Owner>
        <Name>JOHN MARSHALL, MR</Name>
    </Owner>
    <object>
      <ObjectID>122</ObjectID>
      [...]

私はこのライブラリを使用する Java プロジェクトにいます:

import org.ccil.cowan.tagsoup.Parser;
import org.ccil.cowan.tagsoup.XMLWriter;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
import org.xml.sax.XMLReader;

私はJava 6を使用しています。

その手がかりはありますか?
有効な xml ファイルの望ましい出力は、同じファイルになります(詳細を変更するだけで、構造は変更しない可能性があります)。

4

1 に答える 1

0

Tagsoup は、HTML パーサーとして、貧弱な HTML をクリーンアップすることを目的としています。HTML によって定義されたタグ名の場合、tagsoup は、どの要素が他のどの要素内で許可されているかを認識しており、間違ってネストされているものを修正しようとします。また、HTML では、XML とは異なり、タグ名で大文字と小文字が区別されないことにも注意してください。

この場合、HTML で何を意味し、何objecttitle意味するべきか (それぞれ、ある種の埋め込みオブジェクトとページのタイトル) を知っていると判断しtitleたようで、 内で許可されていないことを知っていobjectます。しかしObjectID、 とStatusは既知の HTML 要素名ではないため、疑念の恩恵を受けてそのままにしておきます。

于 2014-07-18T10:49:58.027 に答える