Comments (4)
Original comment by [email protected]
on 10 Jan 2008 at 3:32
- Changed state: Accepted
from wikimodel.
I did some debugging on this problem and found a couple of problems. First, in
the
XhtmlHandler in the tag handler used for th and td line 416 reads:
context.getScannerContext().beginTableCell(context.isTag("th"));
In this case context.isTag("th") is always returning false. It turns out that
isTag
is checking fLocalName. If you read the javadoc for the SAX Content handler at:
http://java.sun.com/j2se/1.5.0/docs/api/org/xml/sax/ContentHandler.html#startEle
ment(java.lang.String,%20java.lang.String,%20java.lang.String,%20org.xml.sax.Att
ributes)
it says that uri and localName parameters are optional if the namespaces
property is
false. The default is supposed to be true. Apparently in my test environment,
the
property is set to false. I added the following 2 lines to the body of
XhtmlParser.parse:
XMLReader xmlReader = parser.getXMLReader();
xmlReader.setFeature("http://xml.org/sax/features/namespaces", true);
Once I did this, the localName parameter is always provided on the SAX calls.
This gets me to a second problem. The first th element inside a tr is not being
handled correctly. If you look at the two beginTableRow methods in
InternalWikiScannerContext, they both call beginTableCell if the row is being
started. This means that when the th element is handled, the context thinks
that it
is already inside a table cell, so it gets skipped. Why are the beginTableRow
methods automatically calling beginTableCell? Maybe that works when processing
wiki
markups, but it does not work properly for the html scanner.
Original comment by [email protected]
on 10 Jan 2008 at 4:24
from wikimodel.
Hi Danny,
Re the first problem I fixed that a few days ago. I've been working on the XHTML
parser for some time now so if you haven't tested it for some time give it a go
:)
Re the second problem I'll probably end up looking at it at some point in the
future
but if you can provide a patch that would help a lot.
Thanks
Original comment by [email protected]
on 22 Nov 2008 at 5:21
from wikimodel.
Fixed
Original comment by [email protected]
on 25 Nov 2008 at 1:23
- Changed state: Fixed
from wikimodel.
Related Issues (20)
- XHTMLParser does not support inner span HOT 3
- wikimodel's usage of cssparser breaks css4j HOT 2
- MediaWiki parser : to parse nested link/reference HOT 1
- MediaWikiParser - NullPointerException on two quote-blocks after empty lines HOT 2
- Confluence - multiline table HOT 1
- Confluence - more emoticons without space HOT 1
- Confluence - basic formating in bracklet HOT 1
- Introduce block nesting level limit
- XHTMLParser - table cells that start with an empty line are badly parsed HOT 1
- MediaWikiParser - Complex macro fails to be parsed as macro. Due to nested macro as paramter ? HOT 3
- [Confluence] Support HTML macro HOT 2
- MediaWiki - Not support <pre class="XXX"> HOT 1
- Confluence - Cannot combine "*" with noformat tag HOT 11
- Confluence 1.0 - The wrong result when parse a string HOT 8
- Error in parsing a text line containing a macro HOT 3
- Confluence - Support list in table HOT 20
- XHTML parser - Empty line before macro is not taken into account HOT 1
- MediaWiki: handle self-closing ref tags and more general <ref> syntax
- MediaWiki: skip HTML-style comments HOT 1
- MediaWiki: unescape html entities
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from wikimodel.