Domanda

sto usando tagsoup per pulire un po 'HTML Sto raschiando da Internet, e sto ottenendo il seguente errore durante l'analisi attraverso le pagine con i commenti:

The data "- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - " is not legal for a JDOM comment: Comment data cannot start with a hyphen.

sto usando JDOM 1.1, ed ecco il codice che fa le pulizie attuale:

    SAXBuilder builder = new org.jdom.input.SAXBuilder("org.ccil.cowan.tagsoup.Parser"); // build
    // Don't check the doctype! At our usage rate, we'll get 503 responses
    // from the w3.
    builder.setEntityResolver(dummyEntityResolver);
    Reader in = new StringReader(str);
    org.jdom.Document doc = builder.build(in);
    String cleanXmlDoc = new org.jdom.output.XMLOutputter().outputString(doc);

Qualche idea di cosa sta andando male, o come risolvere questo problema? Ho bisogno di essere in grado di analizzare le pagine con lunghe stringhe di commento di <!--------- data ------------>

È stato utile?

Soluzione

XML / HTML / SGML commento inizia con --, si conclude con -- e non contiene --. Una dichiarazione commento contiene zero o più commenti.

La stringa esempio può essere riformattato come:

<!----
  ----
  - data
  ----
  ----
  ---->

Come si può vedere, - data non è un commento valido e quindi il documento non è valido HTML. Nel vostro caso specifico si può probabilmente risolvere il problema sostituendo la normale /<?!--.*?-->/ espressione con la stringa vuota, ma essere consapevoli che questo cambiamento potrebbe anche rompere alcuni documenti validi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top