Re: XML to CSV



Serena <serena.phan@xxxxxxxxxxx> wrote:
> Hi,
>
> I'm just wondering if it is possible to get the output below by using
> xslt. I can get solve the problem in which only one of the children of
> the root node has a subtree (i.e only <b> has children) but not the
> case where <c> and <d> have children as well.
>
> Any advice will be greatly appreciated.
>
> Thanks.
>
> Input:
>
> <?xml version="1.0" encoding="UTF-8"?>
> <root>
> <a>a</a>
> <b>
> <bb>bb1</bb>
> <bb>bb2</bb>
> <bb>bb3</bb>
> <bb>bb4</bb>
> </b>
> <c>
> <cc>
> <ccc>ccc1</ccc>
> </cc>
> <cc>
> <ccc>ccc2</ccc>
> </cc>
> </c>
> <d>
> <dd>dd1</dd>
> <dd>dd2</dd>
> </d>
> </root>
>
> Output:
>
> "a", "bb1", "ccc1", "dd1"
> "a", "bb2", "ccc1", "dd1"
> "a", "bb3", "ccc1", "dd1"
> "a", "bb4", "ccc1", "dd1"
> "a", "bb1", "ccc2", "dd1"
> "a", "bb2", "ccc2", "dd1"
> "a", "bb3", "ccc2", "dd1"
> "a", "bb4", "ccc2", "dd1"
> "a", "bb1", "ccc1", "dd2"
> "a", "bb2", "ccc1", "dd2"
> "a", "bb3", "ccc1", "dd2"
> "a", "bb4", "ccc1", "dd2"
> "a", "bb1", "ccc2", "dd2"
> "a", "bb2", "ccc2", "dd2"
> "a", "bb3", "ccc2", "dd2"
> "a", "bb4", "ccc2", "dd2"

You are doing every permutation of a, b, c, and d elements. In shell, I
would first store all the elements in arrays, like
a=( a )
b=( bb1 bb2 bb3 bb4 )
c=( ccc1 ccc2 )
d=( dd1 dd2 )
and then do "cross-product". Of course, the point of your homework is
how to extract those elements. :-)

--
William Park <opengeometry@xxxxxxxx>, Toronto, Canada
ThinFlash: Linux thin-client on USB key (flash) drive
http://home.eol.ca/~parkw/thinflash.html
BashDiff: Super Bash shell
http://freshmeat.net/projects/bashdiff/
.