xsl-list
[Top] [All Lists]

Re: [xsl] removing unecessary attributes

2008-04-01 12:53:12
Thanks for the hint about HTML tidy. That works.

Andreas

Mukul Gandhi schrieb:
Your input is not a well-formed XML. Because attributes are not
enclosed in quotes.

Following approaches quickly come to my mind to handle this.

1) An XSLT process cannot get this input as a data model tree, as a
result of XML parsing. Because XML parser will reject this input.
One approach can be, you can use the XSLT 2.0 function, unparsed-text
to read this input as a string and then parse it by hand and do the
transformation you need. But this will not be trivial.

2) Make the input a well-formed XML. Doing this by hand could be
tedious. So you could use a tool like, HTML tidy
(http://tidy.sourceforge.net/).
After you get a well-formed XML as an input, then writing the XSLT
stylesheet for this requirement is quite easy. A modified identity
stylesheet will work here, easily.


On Tue, Apr 1, 2008 at 10:56 PM, Andreas Peter <info(_at_)minimag(_dot_)de> 
wrote:
Hello list-users,

 I have the following file. The problems are the missing quotes for the
 attributes values and
 I need to remove all of the attributes.

 <table>
  <tr class=xl33 height=17 style='height:12.75pt'>
  <td height=17 class=xl37 style='height:12.75pt'>*00.09.1939</td>
  <td class=xl37>&nbsp;</td>
  <td class=xl38>KM<span style="mso-spacerun: yes"> </span>111</td>
  <td class=xl39 x:num>42</td>
  <td class=xl40 x:num>412</td>
  <td colspan=2 class=xl40 style='mso-ignore:colspan'>&nbsp;</td>
  <td class=xl40>Tender</td>
  <td class=xl40>&nbsp;</td>
  <td class=xl40>PL</td>
  <td class=xl40>&nbsp;</td>
  <td colspan=5 class=xl39 style='mso-ignore:colspan'>&nbsp;</td>
  <td class=xl38>Hela</td>
  <td class=xl39>&nbsp;</td>
  <td colspan=238 class=xl33 style='mso-ignore:colspan'>&nbsp;</td>
  </tr>
 </table>

 I know how to copy the tree and so on but the problems are the missing
 quotes.
 I get the error message "Open quote is expected for attribute "class"
 associated with an element type "tr".

 Using XSLT is it possible to create an output like the follownig?

 <table>
  <tr>
  <td>*00.09.1939</td>
  <td>&nbsp;</td>
  <td>KM 111</td>
  <td>42</td>
  <td>412</td>
  <td>&nbsp;</td>
  <td>Tender</td>
  <td>&nbsp;</td>
  <td>PL</td>
  <td>&nbsp;</td>
  <td>&nbsp;</td>
  <td>Hela</td>
  <td>&nbsp;</td>
  <td>&nbsp;</td>
  </tr>
 </table>

 Thanks for every hint,
 Andreas



--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--

<Prev in Thread] Current Thread [Next in Thread>