Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.java.help > #2477
| Path | csiph.com!usenet.pasdenom.info!weretis.net!feeder4.news.weretis.net!eternal-september.org!feeder.eternal-september.org!.POSTED!not-for-mail |
|---|---|
| From | Jeff Higgins <jeff@invalid.invalid> |
| Newsgroups | comp.lang.java.help |
| Subject | [Update] XMLEventWriter and numeric character references |
| Date | Tue, 05 Feb 2013 20:52:31 -0500 |
| Organization | A noiseless patient Spider |
| Lines | 34 |
| Message-ID | <kesc6c$7qv$1@dont-email.me> (permalink) |
| References | <keqget$g1q$1@dont-email.me> |
| Mime-Version | 1.0 |
| Content-Type | text/plain; charset=ISO-8859-1; format=flowed |
| Content-Transfer-Encoding | 7bit |
| Injection-Date | Wed, 6 Feb 2013 01:38:21 +0000 (UTC) |
| Injection-Info | mx05.eternal-september.org; posting-host="6b9e92482af47766954d85fb77d372f5"; logging-data="8031"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18BuWt8IDBewmGXoOiGsbQ881ydUmIsNsE=" |
| User-Agent | Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.16) Gecko/20121216 Icedove/3.0.11 |
| In-Reply-To | <keqget$g1q$1@dont-email.me> |
| Cancel-Lock | sha1:gFDnj9z4VIW1xd+nY5q2PBl9iIc= |
| Xref | csiph.com comp.lang.java.help:2477 |
Show key headers only | View raw
From XMLStreamWriterImpl:
for (int index = 0; index < end; index++) {
char ch = content.charAt(index);
if (fEncoder != null && !fEncoder.canEncode(ch)){
fWriter.write(content, startWritePos, index - startWritePos );
// Escape this char as underlying encoder cannot handle it
fWriter.write( "&#x" );
fWriter.write(Integer.toHexString(ch));
fWriter.write( ';' );
startWritePos = index + 1;
continue;
}
So yeah, short of a custom XMLStreamWriter
I can add a clause to my processor:
while (eventReader.hasNext()) {
XMLEvent e = eventReader.nextEvent();
if (e.isCharacters() && e.asCharacters().getData().length() == 2) {
if (Character.isHighSurrogate(e.asCharacters().getData().charAt(0))
&&
Character.isLowSurrogate(e.asCharacters().getData().charAt(1))) {
int cp = Character.toCodePoint(e.asCharacters().getData().charAt(0),
e.asCharacters().getData().charAt(1));
eventWriter.add(eventFactory.createEntityReference("#x"
+ Integer.toHexString(cp).toUpperCase(), null));
} else
eventWriter.add(e);
} else
eventWriter.add(e);
}
Back to comp.lang.java.help | Previous | Next — Previous in thread | Find similar | Unroll thread
XMLEventWriter and numeric character references Jeff Higgins <jeff@invalid.invalid> - 2013-02-05 03:52 -0500 [Update] XMLEventWriter and numeric character references Jeff Higgins <jeff@invalid.invalid> - 2013-02-05 20:52 -0500
csiph-web