Unclosed meta/img tag. Output method= xml / xhtml / xml

Hello,
Im trying to parse from a Document to an String, in the usually way, as follows:
    public static String parseDocument(Document document) {
        try {
            if (document== null) {
                return null;
            TransformerFactory tFactory =
                    TransformerFactory.newInstance();
            Transformer transformer = tFactory.newTransformer();
            DOMSource source = new DOMSource(document);
            StringWriter sw = new StringWriter();
            StreamResult result = new StreamResult(sw);
            transformer.transform(source, result);
            String xmlString = sw.toString();
            return xmlString;
//TODO: error handling
        } catch (TransformerConfigurationException ex) {
            return null;
        } catch (TransformerException ex) {
            return null;
        } catch (Exception ex) {
            return null;
}Ive maked a test that creates a Document:
  public static Document createFromDoc(){
        try {
            DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
            DocumentBuilder builder = factory.newDocumentBuilder();
            DOMImplementation impl = builder.getDOMImplementation();
            Document doc = impl.createDocument(null, null, null);
            Element root = doc.createElement("html");
            doc.appendChild(root);
            Element head = doc.createElement("head");
            root.appendChild(head);
            Element meta = doc.createElement("meta");
            meta.setAttribute("http-equiv", "Content-Type");
            meta.setAttribute("content", "text/xml");
            meta.setAttribute("charset", "UTF-8");
            head.appendChild(meta);
            Element title = doc.createElement("title");
            head.appendChild(title);
            Element body = doc.createElement("body");
            root.appendChild(body);
            Element div = doc.createElement("div");
            div.appendChild(doc.createTextNode("Created with docs."));
            body.appendChild(div);
            return doc;
        } catch (ParserConfigurationException ex) {
            Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
            return null;
    }Well, you can see the test method "prueba1". Y:
    public static void prueba1(){
        Document doc1 = Main.createFromDoc();
        //String doc2 = Main.createFromString();
        String doc1Str = GestorXMLDoc.parseDocument(doc1);
        return;
    }Why my method public static String parseDocument(Document document) adds this extra meta tag when it transforms a Document to an String:
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
and modifies the other meta tag as follows (I mean, unclosing it):
<meta charset="UTF-8" content="text/xhtml" http-equiv="Content-Type">
You can see the full String result:
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta charset="UTF-8" content="text/xhtml" http-equiv="Content-Type">
<title></title>
</head>
<body>
<div>Created with docs.</div>
</body>
</html>I tried parsing with a fake XSLT Template with output: XML, and it doesnt works. I tried changing the meta content data with "text/xml".
This method makes the document not compatible with XML, because it doesnt close the meta tag. I need work with this XHTML doc as a valid XML document, not as a HTML (W3C allows set meta/link/img tags unclosed) to add new nodes.
Thank you ppl =)

First of all, what you are trying to do is transforming, not parsing. Parsing is converting an XML document into an internal form, and you already have the XML in the internal form (org.w3c.dom.Document).
Anyway, XSLT has special rules for transforming a document whose root element's name is "html". It looks like those rules are being applied in your case. If you don't want them to be applied (which you don't if you are producing XHTML) then you have to tell the transformer you want XML as your output and not HTML.
If you had an XSLT document you would use <xsl:output method="xml"/>, but you don't have one in this case. So you do it like this:
transformer.setOutputProperty(OutputKeys.METHOD, "xml");

Similar Messages

  • Invalid meta tag generated when using XHTML method

    Hi,
    I'm trying to generate an XHTML file using XSL and the XHTML output method. However, transformation results in adding the following XHTML-invalid meta tag (uppercase and non-closing) in the head tag:
    <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
    Is it a bug in the XDK or am I missing something? Transform is performed using the JXTransformer provided in 11g.
    Thanks in advance,
    Stephane
    input file:
    <?xml version='1.0' encoding='utf-8'?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xml:lang='en' lang='en' xmlns='http://www.w3.org/1999/xhtml'>
    <head>
         <title>Some title</title>
    </head>
    <body></body>
    </html>
    xsl file:
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="2.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:xhtml="http://www.w3.org/1999/xhtml">
         <xsl:output method="xhtml"
    doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"/>
    <xsl:template match="*">
         <xsl:element name="{local-name()}" namespace="http://www.w3.org/1999/xhtml">
              <xsl:apply-templates />
         </xsl:element>
    </xsl:template>
    </xsl:stylesheet>
    output:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    *<META http-equiv="Content-Type" content="text/html; charset=UTF-8">*
    <title>Some title</title></head><body></body></html>

    For some reason when I use MapForce tool to generate my xslt mapping source, it is generating the following statement in the xsl file.
         <xsl:namespace-alias stylesheet-prefix="n" result-prefix="#default"/>
    So at the root element of XML file, it is replacing the character n with '#default' for some reason, I don;t know the purpose of this.
    As you suggested, I changed the name space, still I experienced same problem.
    It is now resolved after removing the above xsl statement from the xsl file before creating/uploading the relevant zip file into archives folder.
    It works fine now. Thanks for the clue.

  • Escaping tag output for use in XHTML document?

    I'm converting a JSP page from HTML to XHTML, and have run across a problem with tags outputting XHTML-invalid characters (&'s and <'s). For example:
    <form action="<f:postResults />">
    postResult returns a string with those invalid characters, and so far I've been unable to figure out how to work around that. Any ideas?

    Our print publications are created in InDesign CS5 for Mac then the text is exported to RTF files then sent to an outside company to be converted to our XML specifications for use by our website developers.  I would like to create a workflow in which our XML tags are included in the InDesign layouts and then export the XML from the layouts.
    Some more detail about what kind of formatting is necessary might be helpful.
    I know that IDML files contain the entire layout in XML format.  Is it a good idea to extract what we need from IDML, using the already-assigned tags?
    Well, if you want to export the whole document, it's the only reasonable approach.
    We use a workflow system such that each story is a seperate InCopy document, stored in ICML format (Basically a subset of IDML). Our web automation uses XSLT to convert each story into HTML for use on our web site; it also matches it up with external metadata so it knows what is a headline and what is not, etc.. It is not exactly hassle free, and every once in a while someone uses a new InDesign feature that breaks things (e.g., our XSLT has no support for paragraph numbering, so numbered paragraphs show up without their numbers).
    You could do the same thing with with IDML, you'd just have to pick out each story, but that's small potatoes compared to all the XSL work you're going to have to do.
    On the other hand, there may be better approaches if you're not going to export the whole document. For instance,  you could use scripting to export each story as an RTF file, and then you could convert the RTF files into HTML using other tools.

  • Easiest and/or best methods for generating XML output (not with a report)

    Hi, several of our EBS customers (11.5.10) are converting their PDF reports to use XML/BI publisher to produce output. The data stream comes from a report that generates the XML output, and then the XML template is applied. This works great ... no problems, etc. From what I have read, however, Oracle intends to treat the traditional Forms and Reports Developers as legacy tools (although still supporting them, of course).
    My question is if I wanted to ditch using Reports to generate XML output, what, in your opinion or in your current usage, is the easiest way of getting this data? In Reports, the data modeler is excellent in providing a method to write your queries, split them into different repeating groups, write formula and summary columns, link multiple queries, etc, etc. If one were to become Reports Developer free, what comparable tools are available to take its place? I would expect this tool to handle a mix of GUI and coding like the Reports data modeler. Please note that I'm not looking for an EBS-specific solution -- say for a custom application using regular Oracle 10g DB and iAS, with BI Publisher for reporting.
    Thanks for your feedback,
    Ryan

    What I'm looking for is to not use Oracle Reports to generate the XML data output since Oracle's statement of direction is pushing BI Publisher rather than Oracle Reports as the preferred tool for reporting. That said, the data modeler in Reports provides a very flexible tool to construct and link multiple queries and to manipulate the queries into several levels of a master/detail relationship. Further, the mix of GUI and coding makes setting up the data model a lot more efficient. What I'm looking for (and I don't know if anything exists) is something comparable that can be used to generate XML output from the DB -- the idea being that I wouldn't use legacy tools, like Reports, for this task. I hope that is clearer.
    Really, another way of answering my question is, aside from Reports and the APIs mentioned so far, what are my fellow developers using, if anything, to extract XML data in a way that handles the features i list above?

  • Problems with the xsl element ---- xsl:output method="xml"/ ----

    Hy, my problem is the next, I am trying to read a xml file and transform it in itself but when I do with XSLT, Internet Explorer doesnt show a xml file, just show me the text nodes of the xml file. I have the element <xsl:output method="xml"/>" in the xsl file but I dont Know what Iam doing wrong.
    The next code is from the xsl file:
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="xml"/>
    <xsl:template match="/">
    <xsl:copy-of select="catalog"/>
    </xsl:template>
    </xsl:stylesheet>
    The next code is from the xml file:
    <?xml version="1.0" encoding="UTF-8"?>
    <!-- Edited with XML Spy v2007 (http://www.altova.com) -->
    <?xml-stylesheet type="text/xsl" href="PlantillaXSL.xml"?>
    <catalog dni="4546545">
         <cd numero="2" id="5" color="red">
              <title>Empire Burlesque</title>
              <artist>Bob Dylan</artist>
              <country>USA</country>
              <company>Columbia</company>
              <price>10.90</price>
              <year>1985</year>
         </cd>
    </catalog>
    The result in internet explorer is:
    Bob Dylan USA Columbia 10.90 1985

    All right. I asked because it's unusual to use the ".xml" extension for an XSL file, so I thought it might be an error. But there's nothing wrong with that.
    Next debugging step: is that XSL file actually being used? Insert some debugging code in it so that you can tell.

  • IMG tag and XML syntax

    Hi,
    I want to dynamically embed image url into the IMG tag as follows:
    <jsp:useBean id="image" scope="request" class="mybeans.ImageBean" type="mybeans.ImageBean" />
    <img src='<jsp:getProperty name="image" property="imagePath"/>'    />The problem arises because of confusion with closing/opening tags getting mixed up.. How do I get this code to work if i'm using xml syntax in my jsp pages? Any solutions?
    P.

    It would be complaining about using a tag as an attribute to another tag.
    ie nesting a tag within the tag, rather than between open/close tags for it.
    Solution? Don't nest tags like this. I'm figuring you have to use an expression of some sort.
    either <img src='<%= image.getImagePath %>'/>
    or using EL in a JSP2.0 container:
    <img src='${image.imagePath}'/>
    I can't say I have done strict xml stuff, so I might be a little off, but thats the general idea.
    Hope this helps,
    evnafets

  • [svn] 4521: Fix for - Override information missing for properties and methods in DITA XML output of ASDoc

    Revision: 4521
    Author: [email protected]
    Date: 2009-01-14 06:01:28 -0800 (Wed, 14 Jan 2009)
    Log Message:
    Fix for - Override information missing for properties and methods in DITA XML output of ASDoc
    QE Notes: None
    Doc Notes: None
    Bugs: SDK-18681
    tests: checkintests
    Ticket Links:
    http://bugs.adobe.com/jira/browse/SDK-18681
    Modified Paths:
    flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/asdoc/TopLevelClassesGenerator.ja va

    Hi ,
    I have an error like this below:
    [java] Exception in thread "main" java.lang.IllegalArgumentException: and
    [java] at com.sun.rave.jsfmeta.generators.Main.run(Main.java:521)
    [java] at com.sun.rave.jsfmeta.generators.Main.main(Main.java:279)
    BUILD FAILED
    if someone know solution plz post it here
    Thanks

  • xsl:output method="html"/ - supported?

    Is the otutput method "html" supported in
    the recent version of the XML/XSL parser?
    I was trying to use the <BR> tag with the
    <xsl utput method="xml"/> declaration but
    I got an XSLException error message
    indicating a not well-formed XML document.
    Then I tried the following output method
    declaration: <xsl utput method="html"/>
    but I got the same result?!
    Here's a simple XSL stylesheet I was using:
    <?xml version="1.0"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl utput method="html"/>
    <xsl:template match="/">
    <HTML>
    <HEAD></HEAD>
    <BODY>
    <P>
    Blah blah<BR>
    More blah blah<BR>
    </P>
    </BODY>
    </HTML>
    </xsl:template>
    My question is: "How do I use a not
    well-formed tags (like <IMG>, <BR>, etc.)
    in a XSL stylesheet?"
    Thank you very much in advance!
    Cheers.
    Georgi

    Sorry for jumping in on this thread, but I have a question regarding you reply. I have an XSL stylesheet that preforms XML to HTML conversion. Everything works correctly with the exception of those HTML tags that are not weel formed. Using your example if I have something like:
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="html"/>
    <input type="text" name="{NAME}" size="{DISPLAY_LENGTH}" maxlength="{LENGTH}"></input>
    </xsl:stylesheet>
    It would render HTML in the format of
    <HTML>
    <input type="text" name="in1" size="10" maxlength="20"/>
    </HTML>
    While IE can handle this Netscape can not. Is there anyway to generate completely cross browser complient HTML with XSL?
    Thanks!

  • img tag

    I have a problem about writing <img tag in the xsl file. Below are the xml and xsl file.
    **************************** XML file **********************************
    <image>promo_banner_onecard.gif</image>
    **************************** XSL file **********************************
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">
    <xsl:output method="html" encoding="utf-8"/>
    <xsl:template match = "test">
    <td width="165" valign="top"><b>& l t ;img src="../images/<xsl:value-of select="image"/>" width="158" height="60" border="0"& g t ;</b></td>
    The output can't interpret the <img src ....> but treat it as the text only and display it on the html page -- <img src="../images/test.gif" width="158" height="60" border="0"> So how can I make the img work? Thanks.

    Use an xsl:element block with xsl:attributes inside it to produce the img tag like this:<xsl:element name="img">
      <xsl:attribute name="src">
        <xsl:value-of select="concat('../images/', image)" />
      </xsl:attribute>
    </xsl:element>Have a look at the other XSL tags you can use at http://www.w3schools.com/xsl/xsl_w3celementref.asp

  • XSLT problem with img tag in Saxon

    Hi,
    Iam getting a problem with <img> tag when transforming a document using Saxon transformer. In the input XSLT I have proper closing tag for <img>, but the output of the transformation is not well formed as the closing tag for <img> does not appear. I need to feed the output to a FO object to generate a print preview, but the output is not well-formed.
    Kindly help to resolve the issue.
    Kind Regards,
    Abhinandan

    Perhaps that is because you are generating HTML as your output? As I recall, <img> tags don't have to be closed in HTML. So try generating XML instead if you need XML.

  • How to display JPEG in JSP w/o IMG tag?

    I have a working application where a jpeg image is ecoded on the server via a JavaBean. The bean is then forwarded to a JSP, which gets the unique jpeg filename from the bean and displays it with an html <IMG> tag. All's fine and well, but I'd like to get away from having lots of image files laying around on the server and just display the image encoded in the current request. I tried creating a custom tag to encode and display the jpeg using the com.sun.image.codec.jpeg.* package in this manner:
    ServletResponse res = pageContext.getResponse();
    OutputStream os = res.getOutputStream();
    JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(os);
    encoder.encode(imageRef); //-- imageRef is instance of BufferedImage
    and in the JSP:
    html, other tags, etc.
    <graph:image imageRef='<%= imageBean.getImage() %>'/>
    The image displays, but nothing else in the JSP (ie. html, other custom tags). In all other tags I've written, JSPWriter is used for output, but I need an OutputStream for the createJPEGEncoder() method.
    Can anyone tell me if what I want to do is possible? I'm chasing my tail at the moment.
    TIA Mark

    Would this work for you:
    Create the IMG tag in the JSP with the SRC as a servlet.
    Also, add any parameters you may need to tell the servlet what image to send back.
    Something like this:out.print("<IMG SRC=\"/servlet/ImageProducerServlet?WhichImage=");
    out.print("MySpecialImage");
    ...The ImageProducerServlet can be setup to send back the JPEG image file.

  • REPLY to xsl:output method="html" posting

    Due to a problem with the discussion software, I cannot reply to postings
    with a less-than sign in the Subject!
    As you can imagine in an XML forum where
    angle-brackets are common, this is a real
    pain! The OTN guys tell me they are
    working on a solution.
    We fully support all options of <xsl utput>
    The problem here is that your XSL Stylesheet must be a well-formed XML document, so everywhere you are using the <BR> element, you need to use
    instead.
    <xsl utput method="html"/> requests
    that when the XSLT Engine writes out
    the result of your transformation,
    is a propert HTML document.
    what the XSLT engine reads in must
    be well-formed XML.

    Sorry for jumping in on this thread, but I have a question regarding you reply. I have an XSL stylesheet that preforms XML to HTML conversion. Everything works correctly with the exception of those HTML tags that are not weel formed. Using your example if I have something like:
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="html"/>
    <input type="text" name="{NAME}" size="{DISPLAY_LENGTH}" maxlength="{LENGTH}"></input>
    </xsl:stylesheet>
    It would render HTML in the format of
    <HTML>
    <input type="text" name="in1" size="10" maxlength="20"/>
    </HTML>
    While IE can handle this Netscape can not. Is there anyway to generate completely cross browser complient HTML with XSL?
    Thanks!

  • XSLProcessor support of xsl:output method="text"?

    I'm having trouble getting my processor to format the output as a big string. Actually, the output is html, but because of some browser bugs I want to avoid linebreaks between tags. Specifically table cell tags <td> and the content of the cell.
    Right now, even though I write my xsl like this:
    <table><tr><td>content</td></tr></table>
    the processor formats the output like this:
    <table>
    <tr>
    <td>content</td>
    </tr>
    </table>
    Is there any way to avoid these line breaks and indentation?
    When I add the lines
    <xsl:output method="text"/>
    <xsl:output indent="no"/>
    to my xsl document, nothing happens.
    Thanks in advance.
    null

    Oh. One more thing. I tried parsing that very simple xml file using the xsl sheet you suggested with the class XSLSample that downloads with the parser. Same problem. Any ideas?
    xml file:
    <root>
    <foo>test text</foo>
    </root>
    xsl file:
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
    <xsl:output method="html" indent="no"/>
    <xsl:template match="/">
    <html>
    <body>
    <table>
    <tr>
    <td><xsl:value-of select="foo"/></td>
    <td><xsl:text>SomeText</xsl:text></td>
    </tr>
    </table>
    </body>
    </html>
    </xsl:template>
    </xsl:stylesheet>
    output:
    <root>
    <html>
    <body>
    <table>
    <tr>
    <td/>
    <td>SomeText</td>
    </tr>
    </table>
    </body>
    </html>
    </root>
    null

  • Xmltype.transform and xsl:output method="html"

    hi, 9.2.0.4 winxp,
    i wonder whether xmltype.transform regards any output instructions in the stylesheet. i requested any of xml, html and text and always got the same result?
    any ideas or hints to more info?
    regards peter

    Sorry for jumping in on this thread, but I have a question regarding you reply. I have an XSL stylesheet that preforms XML to HTML conversion. Everything works correctly with the exception of those HTML tags that are not weel formed. Using your example if I have something like:
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="html"/>
    <input type="text" name="{NAME}" size="{DISPLAY_LENGTH}" maxlength="{LENGTH}"></input>
    </xsl:stylesheet>
    It would render HTML in the format of
    <HTML>
    <input type="text" name="in1" size="10" maxlength="20"/>
    </HTML>
    While IE can handle this Netscape can not. Is there anyway to generate completely cross browser complient HTML with XSL?
    Thanks!

  • XSLT replace ignores output method

    Hi,
    i'm using OSB 10gR3 and in my proxy service i'm doing a XSLT replace action.
    My XSLT has the following instruction at the beginning:
    +<xsl:output method="html" encoding="us-ascii"/>+
    which works just fine in every xlst processor except OSB. It seems OSB simply ignores this tag and always processes the output in XML.
    Any ideas on how i can force both output method and encoding ?
    Thanks.

    There is a mistake in the statement - The xml I have for transfromation has special characters like "&" inside CDATA sections. In the output sql file (the result of transformation) these special characters are output escaped. They appear as "&".
    I am correcting that as below.
    The xml I have for transfromation has special characters like "&" inside CDATA sections. In the output sql file (the result of transformation) these special characters are output escaped. They appear as "&".

Maybe you are looking for