473,407 Members | 2,326 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,407 software developers and data experts.

xml:aid table to HTML

I'm a bit stumped about this request on an Adobe forum. Apparently, exporting a
table from their flagship InDesign to XML produces the following output for a
table (only first 2 rows listed; after that it's more of the same):

<?xml version="1.0" encoding="UTF-8"?>
< Table xmlns:aid="http://ns.adobe.com/AdobeInDesign/4.0/" aid:table="table"
aid:trows="7" aid:tcols="3">
<Cell aid:table="cell" aid:crows="1" aid:ccols="2">
<CellHeading>Situacao do Beneficiario</CellHeading>
</Cell>
<Cell aid:table="cell" aid:crows="1" aid:ccols="1"
aid:ccolwidth="98.93438079914081">
<CellHeading>Taxas de Bonificacao</CellHeading>
</Cell>

Cell aid:table="cell" aid:crows="1" aid:ccols="1"
aid:ccolwidth="78.09186111410146">
<CellBodyCenter>
<CharBold>Idade</CharBold>
</CellBodyCenter>
</Cell>
<Cell aid:table="cell" aid:crows="1" aid:ccols="1"
aid:ccolwidth="78.09186111410146">
<CellBodyCenter>
<CharBold>Carreira Contributiva (em anos)</CharBold>
</CellBodyCenter>
</Cell>
<Cell aid:table="cell" aid:crows="1" aid:ccols="1"
aid:ccolwidth="98.93438079914081">
<CellBodyCenter>
<CharBold>Mensal</CharBold>
</CellBodyCenter>
</Cell>

-- and the request of the OP is, how to convert this to HTML. Sounds easy? Not 4
me. The first row features a colspan (aid:ccols="2"); without this, I could --
and would -- cheat, but this colspan messes up the <Cellcount. You see the
problem. Thou Shalt Not Loop or Count in XSLT As There Are No Variables! Anyone
else see a solution?

[Jongware]
Jul 9 '07 #1
4 3150
[Jongware] wrote:
Thou Shalt Not Loop or Count in XSLT As There Are No Variables!
General observation: you can often use position(), or last() applied to
an expression that counts the preceeding instances, as a replacement for
a loop counter. Try those first -- preferably position(), since it will
be more efficient.

See examples in the XSLT FAQ. Research left as an exercise for the student.
(If all else fails, it is possible to use recursion in place of looping
-- but that really should be a last resort.)
--
() ASCII Ribbon Campaign | Joe Kesselman
/\ Stamp out HTML e-mail! | System architexture and kinetic poetry
Jul 9 '07 #2
"Joe Kesselman" <ke************@comcast.netwrote in message
news:RJ******************************@comcast.com. ..
General observation: you can often use position(), or last() applied to an
expression that counts the preceeding instances, as a replacement for a
loop counter. Try those first -- preferably position(), since it will be
more efficient.
That would have been my cheat if all to-be rows had the same number of
cells. A short synopsis of the (quite unreadable) XML:
(header)
<table col='3' row='5'>
(first row)
<cell span='2'><cell span='1'>
(the rest)
<cell span='1'><cell span='1'<cell span='1'>

-- which has to be output in HTML form, grouping cells per row. The first
row only has 2 cells, as their 'spans' added equals the number of columns,
while the other rows have 3 cells each.
(If all else fails, it is possible to use recursion in place of looping --
but that really should be a last resort.)
The last resort is (always) cheating, and write a custom XSL for this case.
And another one for different numbers of rows and columns. And yet another
if the spans are in other places...
I tried recursion (sort of), propagating a 'current column' semi-variable
through the Cell template, but that was a very bad idea (as in I couldn't
insert row starts and ends).

[Jw]
Jul 10 '07 #3
"Pavel Lepin" <p.*****@ctncorp.comwrote in message
news:f6**********@aioe.org...
>
[Jongware] <Id***********@hotmail.comwrote in
<4Pwki.3912$%q4.1386@amstwist00>:
>I'm a bit stumped about this request on an Adobe forum.

Perhaps you should've sent the OP here instead of serving as
a middleman.
I'll mention this ng ;-)
Engaging my gray matter yielded the following in about ten
minutes:
[brilliant, working solution snipped]

Oof. Just 10 mins?? It'll take me a bit longer than that to understand it.
Dealing with rowspans is left as an exercise for the reader.
Sending polite hate-mail to Adobe asking them to remove
their neck-mounted brain casings from their own rear-end
orifices is advised as well.
Fully agree with that.

[Jw]
Jul 10 '07 #4
Thank you Jongware, and
Pavel Lepin!

This is a great solution but now I get an XML with some tables and the
tables has rowspan and colspan too. Can you help me for the transform?
Or the method like as the previous method?

<Table xmlns:aid="http://ns.adobe.com/AdobeInDesign/4.0/"
aid:table="table" aid:trows="7" aid:tcols="3">
<Cell aid:table="cell" aid:crows="1" aid:ccols="3">
<CellHeading>Situação do Beneficiário/Taxas de Bonificação</
CellHeading>
</Cell>
<Cell aid:table="cell" aid:crows="1" aid:ccols="1"
aid:ccolwidth="78.09186111410146">
<CellBodyCenter>
<CharBold>Idade</CharBold>
</CellBodyCenter>
</Cell>
<Cell aid:table="cell" aid:crows="1" aid:ccols="1"
aid:ccolwidth="103.98750365826466">
<CellBodyCenter>
<CharBold>Carreira Contributiva (em anos)</CharBold>
</CellBodyCenter>
</Cell>
<Cell aid:table="cell" aid:crows="1" aid:ccols="1"
aid:ccolwidth="72.78873825497762">
<CellBodyCenter>
<CharBold>Mensal</CharBold>
</CellBodyCenter>
</Cell>
<Cell aid:table="cell" aid:crows="1" aid:ccols="1"
aid:ccolwidth="78.09186111410146">
<CellBodyCenter>&lt; 65</CellBodyCenter>
</Cell>
<Cell aid:table="cell" aid:crows="1" aid:ccols="1"
aid:ccolwidth="103.98750365826466">
<CellBodyCenter>Condições de Acesso à Pensão sem
Penalização</CellBodyCenter>
</Cell>
<Cell aid:table="cell" aid:crows="1" aid:ccols="1"
aid:ccolwidth="72.78873825497762">
<CellBodyCenter>0,65%</CellBodyCenter>
</Cell>
<Cell aid:table="cell" aid:crows="1" aid:ccols="1"
aid:ccolwidth="78.09186111410146"></Cell>
<Cell aid:table="cell" aid:crows="3" aid:ccols="1"
aid:ccolwidth="103.98750365826466">
<CellBodyCenter>15 a 24 </CellBodyCenter>
<CellBodyCenter>25 a 34 </CellBodyCenter>
<CellBodyCenter>35 a 39</CellBodyCenter>
</Cell>
<Cell aid:table="cell" aid:crows="1" aid:ccols="1"
aid:ccolwidth="72.78873825497762">
<CellBodyCenter>0.33%</CellBodyCenter>
</Cell>
<Cell aid:table="cell" aid:crows="1" aid:ccols="1"
aid:ccolwidth="78.09186111410146">
<CellBodyCenter>&gt; 65</CellBodyCenter>
</Cell>
<Cell aid:table="cell" aid:crows="1" aid:ccols="1"
aid:ccolwidth="72.78873825497762">
<CellBodyCenter>0.65%</CellBodyCenter>
</Cell>
<Cell aid:table="cell" aid:crows="1" aid:ccols="1"
aid:ccolwidth="78.09186111410146"></Cell>
<Cell aid:table="cell" aid:crows="1" aid:ccols="1"
aid:ccolwidth="72.78873825497762">
<CellBodyCenter>1.0%</CellBodyCenter>
</Cell>
<Cell aid:table="cell" aid:crows="1" aid:ccols="1"
aid:ccolwidth="78.09186111410146">
<CellBodyCenter>&gt; 65</CellBodyCenter>
</Cell>
<Cell aid:table="cell" aid:crows="1" aid:ccols="1"
aid:ccolwidth="103.98750365826466">
<CellBodyCenter>&gt; 40</CellBodyCenter>
</Cell>
<Cell aid:table="cell" aid:crows="1" aid:ccols="1"
aid:ccolwidth="72.78873825497762">
<CellBodyCenter>0.5%</CellBodyCenter>
</Cell>
</Table>

Thank you!

Jul 17 '07 #5

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

7
by: marboti | last post by:
http://www.testyourabilities.com/it/ IT tests. C, C++, XML, HTML, .NET, SQL...
0
by: marboti | last post by:
http://www.testyourabilities.com/it/ IT tests. SQL, XML, HTML, .NET, C++...
1
by: marboti | last post by:
http://www.testyourabilities.com/it/ IT tests. C#, ASP.NET, VB.NET, SQL, XML, HTML, C, C++...
0
by: marboti | last post by:
http://www.testyourabilities.com/it/ IT tests. ASP.NET, C#, VB.NET, SQL, XML, HTML, C, C++...
0
by: marboti | last post by:
http://www.testyourabilities.com/it/ IT tests. VB.NET, C#, ASP.NET, SQL, XML, HTML, C, C++...
3
by: Dale Strickland-Clark | last post by:
A colleague has asked me this and I don't know the answer. Can anyone here help with this? Thanks in advance. Here is his email: I am trying to parse an HTML document using the xml.dom.minidom...
0
by: Yama | last post by:
Hi, This code does not work in IE 6.0: <html> <body> <!-- <?xml version="1.0" encoding="ISO-8859-1"?> <CATALOG>
1
by: abhishekbrave | last post by:
I hava xml code in following format. My aim is to convert this show the data present here in tabular format to a HTML page. <table bid="18" sid="7" ref="REF_17" x="0" y="80" h="50" w="607"...
2
by: anand18101984 | last post by:
I have an XML file with a table in the below format, <TABLE> <TR> <TH>EVENT</TH> <TH>SUMMARY</TH> </TR> <TR> ...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
0
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...
0
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.