You are viewing a plain text version of this content. The canonical link for it is here.
Posted to j-users@xalan.apache.org by rbaxter <rb...@auspicecorp.com> on 2007/02/27 17:44:20 UTC

entity-encoded XML

Hi, there may be a simple answer to this but I have not found anything.

I have an XML file that is entity-encoded (see below) which I want to
transform into an HTML file using Xalan.  What would be the best way to make
Xalan read the XML file?

Sample XML file:

&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;?xml-stylesheet href=&quot;SalesToHTML.xsl&quot;
type=&quot;text/xsl&quot; ?&gt;
&lt;!-- SalesReport.xml --&gt;
&lt;SalesReport&gt;
	&lt;Company&gt;XMML.com&lt;/Company&gt;
	&lt;Period&gt;2001-2002&lt;/Period&gt;
	&lt;Sales Region=&quot;EU&quot;&gt;50,000&lt;/Sales&gt;
	&lt;Sales Region=&quot;NA&quot;&gt;150,000&lt;/Sales&gt;
	&lt;Sales Region=&quot;AU&quot;&gt;10,000&lt;/Sales&gt;
&lt;/SalesReport&gt;
-- 
View this message in context: http://www.nabble.com/entity-encoded-XML-tf3302404.html#a9186221
Sent from the Xalan - J - Users mailing list archive at Nabble.com.


Re: entity-encoded XML

Posted by ke...@us.ibm.com.
>The problem now is that I need to return the data as something the
stylesheet
> can use to select values from.

Have the extension run it through a DOM parser and return the root node. I
don't remember offhand whether Xylem will consider that a nodeset or an
RTF; if the latter, you'll have to use the exslt node-set extension to put
it into a form Xalan can apply XPaths to.


______________________________________
"... Three things see no end: A loop with exit code done wrong,
A semaphore untested, And the change that comes along. ..."
  -- "Threes" Rev 1.1 - Duane Elms / Leslie Fish
(http://www.ovff.org/pegasus/songs/threes-rev-11.html)

Re: entity-encoded XML

Posted by Erin Harris <eh...@ca.ibm.com>.
Hi,

You could build a DOM from the string and pass back the root node.  The 
valid return types for extension functions are listed here:  
http://xml.apache.org/xalan-j/extensions.html#ext-functions.

Thanks.

Erin Harris





rbaxter <rb...@auspicecorp.com> 
28/02/2007 11:22 AM

To
xalan-j-users@xml.apache.org
cc

Subject
Re: entity-encoded XML







I have made a little progress actually.  I now have an Xalan extension 
that
takes in the encoded data as a String and then on that String I replace 
all
the encoded characters with the corresponding <, >, ".  The problem now is
that I need to return the data as something the stylesheet can use to 
select
values from.  Any ideas?

Erin Harris wrote:
> 
> Hi,
> 
> You might want to post this to the xerces mailing list: 
> j-users@xerces.apache.org, as they might have some other ideas.
> 
> One suggestion is to wrapper the xml file with a start and end tag and 
> then parse it, providing your own ContentHandler which has the 
following:
> 
> StringBuffer buffer = new StringBuffer();
> 
> public void characters(char[] arg0, int arg1, int arg2) throws 
> SAXException {
>         buffer.append(arg0, arg1, arg2);
> }
> 
> When I ran this against the following input:
> 
> <root>
> &lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
> &lt;?xml-stylesheet href=&quot;SalesToHTML.xsl&quot;
> type=&quot;text/xsl&quot; ?&gt;
> &lt;!-- SalesReport.xml --&gt;
> &lt;SalesReport&gt;
>                  &lt;Company&gt;XMML.com&lt;/Company&gt;
>                  &lt;Period&gt;2001-2002&lt;/Period&gt;
>                  &lt;Sales Region=&quot;EU&quot;&gt;50,000&lt;/Sales&gt;
>                  &lt;Sales 
Region=&quot;NA&quot;&gt;150,000&lt;/Sales&gt;
>                  &lt;Sales Region=&quot;AU&quot;&gt;10,000&lt;/Sales&gt;
> &lt;/SalesReport&gt;
> </root>
> 
> My string buffer contained:
> 
> <?xml version="1.0" encoding="utf-8"?>
> <?xml-stylesheet href="SalesToHTML.xsl"
> type="text/xsl" ?>
> <!-- SalesReport.xml -->
> <SalesReport>
>                  <Company>XMML.com</Company>
>                  <Period>2001-2002</Period>
>                  <Sales Region="EU">50,000</Sales>
>                  <Sales Region="NA">150,000</Sales>
>                  <Sales Region="AU">10,000</Sales>
> </SalesReport>
> 
> The value of the string buffer can then itself be parsed.
> 
> Erin Harris
> 
> 
> 
> 
> 
> rbaxter <rb...@auspicecorp.com> 
> 27/02/2007 11:44 AM
> 
> To
> xalan-j-users@xml.apache.org
> cc
> 
> Subject
> entity-encoded XML
> 
> 
> 
> 
> 
> 
> 
> Hi, there may be a simple answer to this but I have not found anything.
> 
> I have an XML file that is entity-encoded (see below) which I want to
> transform into an HTML file using Xalan.  What would be the best way to 
> make
> Xalan read the XML file?
> 
> Sample XML file:
> 
> &lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
> &lt;?xml-stylesheet href=&quot;SalesToHTML.xsl&quot;
> type=&quot;text/xsl&quot; ?&gt;
> &lt;!-- SalesReport.xml --&gt;
> &lt;SalesReport&gt;
>                  &lt;Company&gt;XMML.com&lt;/Company&gt;
>                  &lt;Period&gt;2001-2002&lt;/Period&gt;
>                  &lt;Sales Region=&quot;EU&quot;&gt;50,000&lt;/Sales&gt;
>                  &lt;Sales 
Region=&quot;NA&quot;&gt;150,000&lt;/Sales&gt;
>                  &lt;Sales Region=&quot;AU&quot;&gt;10,000&lt;/Sales&gt;
> &lt;/SalesReport&gt;
> -- 
> View this message in context: 
> http://www.nabble.com/entity-encoded-XML-tf3302404.html#a9186221
> Sent from the Xalan - J - Users mailing list archive at Nabble.com.
> 
> 
> 
> 

-- 
View this message in context: 
http://www.nabble.com/entity-encoded-XML-tf3302404.html#a9207053
Sent from the Xalan - J - Users mailing list archive at Nabble.com.



Re: entity-encoded XML

Posted by rbaxter <rb...@auspicecorp.com>.
I have made a little progress actually.  I now have an Xalan extension that
takes in the encoded data as a String and then on that String I replace all
the encoded characters with the corresponding <, >, ".  The problem now is
that I need to return the data as something the stylesheet can use to select
values from.  Any ideas?

Erin Harris wrote:
> 
> Hi,
> 
> You might want to post this to the xerces mailing list: 
> j-users@xerces.apache.org, as they might have some other ideas.
> 
> One suggestion is to wrapper the xml file with a start and end tag and 
> then parse it, providing your own ContentHandler which has the following:
> 
> StringBuffer buffer = new StringBuffer();
>  
> public void characters(char[] arg0, int arg1, int arg2) throws 
> SAXException {
>         buffer.append(arg0, arg1, arg2);
> }
> 
> When I ran this against the following input:
> 
> <root>
> &lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
> &lt;?xml-stylesheet href=&quot;SalesToHTML.xsl&quot;
> type=&quot;text/xsl&quot; ?&gt;
> &lt;!-- SalesReport.xml --&gt;
> &lt;SalesReport&gt;
>                  &lt;Company&gt;XMML.com&lt;/Company&gt;
>                  &lt;Period&gt;2001-2002&lt;/Period&gt;
>                  &lt;Sales Region=&quot;EU&quot;&gt;50,000&lt;/Sales&gt;
>                  &lt;Sales Region=&quot;NA&quot;&gt;150,000&lt;/Sales&gt;
>                  &lt;Sales Region=&quot;AU&quot;&gt;10,000&lt;/Sales&gt;
> &lt;/SalesReport&gt;
> </root>
> 
> My string buffer contained:
> 
> <?xml version="1.0" encoding="utf-8"?>
> <?xml-stylesheet href="SalesToHTML.xsl"
> type="text/xsl" ?>
> <!-- SalesReport.xml -->
> <SalesReport>
>                  <Company>XMML.com</Company>
>                  <Period>2001-2002</Period>
>                  <Sales Region="EU">50,000</Sales>
>                  <Sales Region="NA">150,000</Sales>
>                  <Sales Region="AU">10,000</Sales>
> </SalesReport>
> 
> The value of the string buffer can then itself be parsed.
> 
> Erin Harris
> 
> 
> 
> 
> 
> rbaxter <rb...@auspicecorp.com> 
> 27/02/2007 11:44 AM
> 
> To
> xalan-j-users@xml.apache.org
> cc
> 
> Subject
> entity-encoded XML
> 
> 
> 
> 
> 
> 
> 
> Hi, there may be a simple answer to this but I have not found anything.
> 
> I have an XML file that is entity-encoded (see below) which I want to
> transform into an HTML file using Xalan.  What would be the best way to 
> make
> Xalan read the XML file?
> 
> Sample XML file:
> 
> &lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
> &lt;?xml-stylesheet href=&quot;SalesToHTML.xsl&quot;
> type=&quot;text/xsl&quot; ?&gt;
> &lt;!-- SalesReport.xml --&gt;
> &lt;SalesReport&gt;
>                  &lt;Company&gt;XMML.com&lt;/Company&gt;
>                  &lt;Period&gt;2001-2002&lt;/Period&gt;
>                  &lt;Sales Region=&quot;EU&quot;&gt;50,000&lt;/Sales&gt;
>                  &lt;Sales Region=&quot;NA&quot;&gt;150,000&lt;/Sales&gt;
>                  &lt;Sales Region=&quot;AU&quot;&gt;10,000&lt;/Sales&gt;
> &lt;/SalesReport&gt;
> -- 
> View this message in context: 
> http://www.nabble.com/entity-encoded-XML-tf3302404.html#a9186221
> Sent from the Xalan - J - Users mailing list archive at Nabble.com.
> 
> 
> 
> 

-- 
View this message in context: http://www.nabble.com/entity-encoded-XML-tf3302404.html#a9207053
Sent from the Xalan - J - Users mailing list archive at Nabble.com.


Re: entity-encoded XML

Posted by Erin Harris <eh...@ca.ibm.com>.
Hi,

You might want to post this to the xerces mailing list: 
j-users@xerces.apache.org, as they might have some other ideas.

One suggestion is to wrapper the xml file with a start and end tag and 
then parse it, providing your own ContentHandler which has the following:

StringBuffer buffer = new StringBuffer();
 
public void characters(char[] arg0, int arg1, int arg2) throws 
SAXException {
        buffer.append(arg0, arg1, arg2);
}

When I ran this against the following input:

<root>
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;?xml-stylesheet href=&quot;SalesToHTML.xsl&quot;
type=&quot;text/xsl&quot; ?&gt;
&lt;!-- SalesReport.xml --&gt;
&lt;SalesReport&gt;
                 &lt;Company&gt;XMML.com&lt;/Company&gt;
                 &lt;Period&gt;2001-2002&lt;/Period&gt;
                 &lt;Sales Region=&quot;EU&quot;&gt;50,000&lt;/Sales&gt;
                 &lt;Sales Region=&quot;NA&quot;&gt;150,000&lt;/Sales&gt;
                 &lt;Sales Region=&quot;AU&quot;&gt;10,000&lt;/Sales&gt;
&lt;/SalesReport&gt;
</root>

My string buffer contained:

<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet href="SalesToHTML.xsl"
type="text/xsl" ?>
<!-- SalesReport.xml -->
<SalesReport>
                 <Company>XMML.com</Company>
                 <Period>2001-2002</Period>
                 <Sales Region="EU">50,000</Sales>
                 <Sales Region="NA">150,000</Sales>
                 <Sales Region="AU">10,000</Sales>
</SalesReport>

The value of the string buffer can then itself be parsed.

Erin Harris





rbaxter <rb...@auspicecorp.com> 
27/02/2007 11:44 AM

To
xalan-j-users@xml.apache.org
cc

Subject
entity-encoded XML







Hi, there may be a simple answer to this but I have not found anything.

I have an XML file that is entity-encoded (see below) which I want to
transform into an HTML file using Xalan.  What would be the best way to 
make
Xalan read the XML file?

Sample XML file:

&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;?xml-stylesheet href=&quot;SalesToHTML.xsl&quot;
type=&quot;text/xsl&quot; ?&gt;
&lt;!-- SalesReport.xml --&gt;
&lt;SalesReport&gt;
                 &lt;Company&gt;XMML.com&lt;/Company&gt;
                 &lt;Period&gt;2001-2002&lt;/Period&gt;
                 &lt;Sales Region=&quot;EU&quot;&gt;50,000&lt;/Sales&gt;
                 &lt;Sales Region=&quot;NA&quot;&gt;150,000&lt;/Sales&gt;
                 &lt;Sales Region=&quot;AU&quot;&gt;10,000&lt;/Sales&gt;
&lt;/SalesReport&gt;
-- 
View this message in context: 
http://www.nabble.com/entity-encoded-XML-tf3302404.html#a9186221
Sent from the Xalan - J - Users mailing list archive at Nabble.com.