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 回答