/** * Returns an Iterator for the XHTML bodies in the message. Returns null if * the message does not contain an XHTML extension. * * @param message an XHTML message * @return an Iterator for the bodies in the message or null if none. */ public static Iterator getBodies(Message message) { XHTMLExtension xhtmlExtension = (XHTMLExtension) message.getExtension("html", namespace); if (xhtmlExtension != null) return xhtmlExtension.getBodies(); else return null; }
/** * Returns an Iterator for the XHTML bodies in the message. Returns null if * the message does not contain an XHTML extension. * * @param message an XHTML message * @return an Iterator for the bodies in the message or null if none. */ public static Iterator<String> getBodies(Message message) { XHTMLExtension xhtmlExtension = (XHTMLExtension) message.getExtension("html", namespace); if (xhtmlExtension != null) return xhtmlExtension.getBodies(); else return null; }
/** * Returns an Iterator for the XHTML bodies in the message. Returns null if * the message does not contain an XHTML extension. * * @param message * an XHTML message * @return an Iterator for the bodies in the message or null if none. */ public static Iterator getBodies(Message message) { XHTMLExtension xhtmlExtension = (XHTMLExtension) message.getExtension( "html", namespace); if (xhtmlExtension != null) return xhtmlExtension.getBodies(); else return null; }
/** * Parses a XHTMLExtension packet (extension sub-packet). * * @param parser the XML parser, positioned at the starting element of the extension. * @return a PacketExtension. * @throws Exception if a parsing error occurs. */ public PacketExtension parseExtension(XmlPullParser parser) throws Exception { XHTMLExtension xhtmlExtension = new XHTMLExtension(); boolean done = false; StringBuilder buffer = new StringBuilder(); int startDepth = parser.getDepth(); int depth = parser.getDepth(); String lastTag = ""; while (!done) { int eventType = parser.next(); if (eventType == XmlPullParser.START_TAG) { if (parser.getName().equals("body")) { buffer = new StringBuilder(); depth = parser.getDepth(); } lastTag = parser.getText(); buffer.append(parser.getText()); } else if (eventType == XmlPullParser.TEXT) { if (buffer != null) { // We need to return valid XML so any inner text needs to be re-escaped buffer.append(StringUtils.escapeForXML(parser.getText())); } } else if (eventType == XmlPullParser.END_TAG) { if (parser.getName().equals("body") && parser.getDepth() <= depth) { buffer.append(parser.getText()); xhtmlExtension.addBody(buffer.toString()); } else if (parser.getName().equals(xhtmlExtension.getElementName()) && parser.getDepth() <= startDepth) { done = true; } else { // This is a check for tags that are both a start and end tag like <br/> // So that they aren't doubled if(!lastTag.equals(parser.getText())) { buffer.append(parser.getText()); } } } } return xhtmlExtension; }
/** * Parses a XHTMLExtension packet (extension sub-packet). * * @param parser the XML parser, positioned at the starting element of the extension. * @return a PacketExtension. * @throws Exception if a parsing error occurs. */ public PacketExtension parseExtension(XmlPullParser parser) throws Exception { XHTMLExtension xhtmlExtension = new XHTMLExtension(); boolean done = false; StringBuilder buffer = new StringBuilder(); int startDepth = parser.getDepth(); int depth = parser.getDepth(); String lastTag = ""; while (!done) { int eventType = parser.next(); if (eventType == XmlPullParser.START_TAG) { if (parser.getName().equals("body")) { buffer = new StringBuilder(); depth = parser.getDepth(); } lastTag = parser.getText(); buffer.append(parser.getText()); } else if (eventType == XmlPullParser.TEXT) { if (buffer != null) { // We need to return valid XML so any inner text needs to be re-escaped buffer.append(StringUtils.escapeForXML(parser.getText())); } } else if (eventType == XmlPullParser.END_TAG) { if (parser.getName().equals("body") && parser.getDepth() <= depth) { buffer.append(parser.getText()); xhtmlExtension.addBody(buffer.toString()); } else if (parser.getName().equals(xhtmlExtension.getElementName()) && parser.getDepth() <= startDepth) { done = true; } else { // This is a check for tags that are both a start and end tag like <br/> // So that they aren't doubled if(lastTag == null || !lastTag.equals(parser.getText())) { buffer.append(parser.getText()); } } } } return xhtmlExtension; }
/** * Parses a XHTMLExtension packet (extension sub-packet). * * @param parser * the XML parser, positioned at the starting element of the * extension. * @return a PacketExtension. * @throws Exception * if a parsing error occurs. */ public PacketExtension parseExtension(XmlPullParser parser) throws Exception { XHTMLExtension xhtmlExtension = new XHTMLExtension(); boolean done = false; StringBuilder buffer = new StringBuilder(); int startDepth = parser.getDepth(); int depth = parser.getDepth(); String lastTag = ""; while (!done) { int eventType = parser.next(); if (eventType == XmlPullParser.START_TAG) { if (parser.getName().equals("body")) { buffer = new StringBuilder(); depth = parser.getDepth(); } lastTag = parser.getText(); buffer.append(parser.getText()); } else if (eventType == XmlPullParser.TEXT) { if (buffer != null) { // We need to return valid XML so any inner text needs to be // re-escaped buffer.append(StringUtils.escapeForXML(parser.getText())); } } else if (eventType == XmlPullParser.END_TAG) { if (parser.getName().equals("body") && parser.getDepth() <= depth) { buffer.append(parser.getText()); xhtmlExtension.addBody(buffer.toString()); } else if (parser.getName().equals( xhtmlExtension.getElementName()) && parser.getDepth() <= startDepth) { done = true; } else { // This is a check for tags that are both a start and end // tag like <br/> // So that they aren't doubled if (lastTag == null || !lastTag.equals(parser.getText())) { buffer.append(parser.getText()); } } } } return xhtmlExtension; }