## RE: [XSL-FO] xml tree representation

Expand Messages
• Maybe someone would be able to figure this problem out if they saw the source code (very simple experimenting code) from VB. This takes the XML input and tries
Message 1 of 4 , Mar 1, 2002
• 0 Attachment
Maybe someone would be able to figure this problem out if they saw the source code (very simple experimenting code) from VB. This takes the XML input and tries to plot the elements out in the picture box. If I had gotten this right I had planned to go on to drawing lines in the tree, but I never got that far.. As it is, it plots elements out, but incorrectly. Here goes - any help appreciated as always:

Sub DrawTree()

End Sub

Function Draw(node)
Dim xPos
Dim yPos
xPos = 130
yPos = 20
frmDrawTree.Picture1.Print node
' frmDrawTree.Picture1.Line (xPos + 2, yPos + 15)-(xPos - 10, yPos + 50), RGB(0, 0, 0)
End Function

Dim xmlDoc As MSXML2.DOMDocument
Set xmlDoc = New MSXML2.DOMDocument
Call tree_walk(xmlDoc, 160, 20)
End Sub

Function WalkTree(node)
Dim xnode As MSXML2.DOMDocument
Set xnode = node

If xnode.hasChildNodes Then
For Each child In xnode.childNodes
Call Draw(xnode.firstChild)
Next

End Function

Function tree_walk(node, prevNodeSpace, ySpace)

Dim nodeName
Dim child
Dim i
Dim spaceVar
Dim tempNodeSpace

tempNodeSpace = prevNodeSpace

For Each child In node.childNodes
frmDrawTree.Picture1.CurrentX = prevNodeSpace
frmDrawTree.Picture1.CurrentY = ySpace
Call Draw(node.childNodes(i).nodeName)

prevNodeSpace = prevNodeSpace * 3
Next

prevNodeSpace = tempNodeSpace

For Each child In node.childNodes
If child.hasChildNodes Then
prevNodeSpace = prevNodeSpace / 2
ySpace = ySpace + 20
prevNodeSpace = prevNodeSpace
Call tree_walk(child, prevNodeSpace, ySpace)

End If
Next

End Function

Best,

Anders

-----Original Message-----
From: G. Ken Holman [mailto:gkholman@...]
Sent: den 1 mars 2002 17:22
To: XSL-FO@yahoogroups.com
Subject: Re: [XSL-FO] xml tree representation

At 2002-03-01 08:10 -0800, Paul Tyson wrote:
>In either case, you could use XSLT to emit a plain text file representing
>the nodes and their relationships, then call the graph layout program to
>produce a graphic file.
>
>--Paul
>
>----- Original Message -----
>From: "Anders Svensson" <asn@...>
>To: <XSL-FO@yahoogroups.com>
>Sent: Friday, March 01, 2002 7:18 AM
>Subject: [XSL-FO] xml tree representation
>
>
> > Hi,
> >
> > I'm looking for a way to create a graph/tree representation of an xml
> document,

To use XSLT to emit the plain text file representing the nodes, we have a
top of our home page noted below; it is the third entry in the library).

I hope this helps.

............. Ken

X:\samp>type partlist.xml
<?xml version="1.0"?>
<!--start-->
<part-list bin="78"><part nbr="A123">bolt</part>
<part nbr="B456">washer</part><warn type="refill"/>
</part-list>

X:\samp>saxon partlist.xml z:\data\kendata\dev\showtree\showtree.xsl
SHOWTREE Stylesheet
Processor: SAXON 6.5 from Michael Kay
1 Comment: {start}
2 Element 'part-list':
2.A Attribute 'bin': {78}
2.1 Element 'part' (part-list):
2.1.A Attribute 'nbr': {A123}
2.1.1 Text (part-list,part): {bolt}
2.2 Text (part-list): {
}
2.3 Element 'part' (part-list):
2.3.A Attribute 'nbr': {B456}
2.3.1 Text (part-list,part): {washer}
2.4 Element 'warn' (part-list):
2.4.A Attribute 'type': {refill}
2.5 Text (part-list): {
}
2.6 Comment (part-list): {end of parts}
2.7 Proc. Inst. 'cursor' (part-list): {blink under}
2.8 Text (part-list): {
}
X:\samp>

--
Upcoming: 3-days XSLT/XPath and/or 2-days XSLFO: June 17-21, 2002
- : 3-days XML Information Modeling: July 31-August 2, 2002

G. Ken Holman mailto:gkholman@...
Crane Softwrights Ltd. http://www.CraneSoftwrights.com/f/
Box 266, Kars, Ontario CANADA K0A-2E0 +1(613)489-0999 (Fax:-0995)
ISBN 0-13-065196-6 Definitive XSLT & XPath
ISBN 1-894049-08-X Practical Transformation Using XSLT and XPath
ISBN 1-894049-07-1 Practical Formatting Using XSLFO
XSL/XML/DSSSL/SGML/OmniMark services, books(electronic, printed),