Table in p ?


#1

Hallo,
ich hab mir eine kleine Methode geschrieben, um alle table zu “extrahieren”:

        List<?> l = e.getByXPath(path[index]);
        for (Object object : l) {
            HtmlElement he = (HtmlElement) object;
            System.out.println(before[index]);
            if (index < path.length - 1) {
                find(he, path, index + 1, before, after);
            } else {
                System.out.println(he.asText() );
            }
            System.out.println(after[index]);
        }
    }```
und aufgerufen wird sie so:
```            find(
                    hp,
                    new String[]{".//table", ".//tbody/tr", ".//td"},
                    0,
                    new String[]{"<p><table>", "<tr>", "<td>"},
                    new String[]{"</table></p>", "</tr>", "</td>"});```
Jetzt sagt er mir aber:

> No "p" element in scope but a "p" end tag seen.
> From line 4507, column 9; to line 4507, column 12
> (Rule Category: Elements structure)

Was mach ich falsch, bzw., würdet ihr auch so machen?

#2

Moin,

nein, würde ich nicht so machen, da es ja einen Fehler wirft :smiley:

Schau mal hier: https://wiki.selfhtml.org/wiki/HTML/Textstrukturierung/p (speziell der Einschub “beachten sie”) !!

Gruß Klaus


#3

[quote=CyborgBeta]new String[]{"<p><table>", "<tr>", "<td>"}, new String[]{"</table></p>", "</tr>", "</td>"});[/quote]Da bist Du noch innerhal der Tabellenzelle, wenn er auf das </p> stößt.

es muss also so sein:new String[]{"<p><table>", "<tr>", "<td>"}, new String[]{ "</td>","</tr>", "</table></p>"});

Aber OK, Spezifikationen waren HTML-Entwicklern ja noch nie sooo wichtig…


#4

OMG, habe auf SO Diskussion dazu gefunden, da wird ja alles diskutiert:
html - Why is

not allowed inside

- Stack Overflow

Nur schnell umrissen:
Ein s. g. komplexer Block ist anscheinend nicht innerhalb eines p’s erlaubt -
und table hat vorher geöffnetes p geschlossen, s. d. ein schließendes p alleine steht
und gegen Syntax verstößt. :frowning:

Naja, jetzt konnte ich die table’s aufbauen und stylen und drucken :slight_smile:


#5

Richtig - siehe mein Link oben!!
Da wird genau das beschrieben :stuck_out_tongue_winking_eye: