|
Subject: RE: [xsl] Problems copying elements recursively. From: Imrran Wahid <devguy2003@xxxxxxxxx> Date: Sat, 8 Feb 2003 07:01:04 -0800 (PST) |
I managed to get the following template to produce
some kind of output closer to a possible solution.
But it still is not right...take a look at the output:
Here's the xml:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<?xml-stylesheet type="text/xsl" href="test1.xsl"?>
<SomeOutput>
<Content>
<Code>2</Code>
<ID>6</ID>
<TranNum>1</TranNum>
<Items>
<Item>
<ItemLine>3</ItemLine>
<ItemAcct>6</ItemAcct>
</Item>
<Item>
<ItemLine>5</ItemLine>
<ItemAcct>34</ItemAcct>
</Item>
</Items>
</Content>
<OtherDetails>
<Title>Testing</Title>
<Type>E</Type>
<Time>12.20</Time>
</OtherDetails>
</SomeOutput>
Here's the template:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes" />
<xsl:template match="/">
<html>
<head>
<title>Testing</title>
</head>
<body bgcolor="#B0C4DE">
<h3>Raw XML</h3>
<xsl:apply-templates select="//Content" />
</body>
</html>
</xsl:template>
<xsl:template match="Content//*">
<xsl:copy>
<br/>
<xsl:text>---</xsl:text>
<xsl:if test="count(*) > 0">
<xsl:text>***</xsl:text>
</xsl:if>
<xsl:text><</xsl:text>
<xsl:value-of select="name()"/>
<xsl:text>></xsl:text>
<xsl:value-of select="text()"/>
<xsl:apply-templates select="*|@*"/>
<xsl:text></</xsl:text>
<xsl:value-of select="name()"/>
<xsl:text>></xsl:text>
</xsl:copy>
</xsl:template>
<xsl:template match="//Content">
<xsl:copy>
<xsl:text><</xsl:text>
<xsl:value-of select="name()"/>
<xsl:text>></xsl:text>
<xsl:value-of select="text()"/>
<xsl:apply-templates select="*|@*"/>
<br/>
<xsl:text></</xsl:text>
<xsl:value-of select="name()"/>
<xsl:text>></xsl:text>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
Here's the output:
Raw XML
<Content>
---<Code>2</Code>
---<ID>6</ID>
---<TranNum>1</TranNum>
---***<Items>
---***<Item>
---<ItemLine>3</ItemLine>
---<ItemAcct>6</ItemAcct></Item>
---***<Item>
---<ItemLine>5</ItemLine>
---<ItemAcct>34</ItemAcct></Item></Items>
</Content>
The closing tags for nested elements need to be on a
separate line. And the indenting is not right for
nested items. I was thinking that maybe a variable to
hold the indenting characters would help the
indenting. How do i implement? Or any ideas would be
welcomed.
Thanks.
> > Yes, I wish to display the markup for only this
> one
> > node...and all its decendants. Would the identity
> > transform help with this? I thought it was for the
> > entire document.
> >
> > >
>
> You can apply it to any node set that you wish, not
> limited to the whole
> document. You can write templates to modify the
> output as the template
> recurses through the node set.
>
> Cheers,
>
> Tom P
>
> XSL-List info and archive:
> http://www.mulberrytech.com/xsl/xsl-list
>
__________________________________________________
Do you Yahoo!?
Yahoo! Mail Plus - Powerful. Affordable. Sign up now.
http://mailplus.yahoo.com
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| RE: [xsl] Problems copying elements, Passin, Tom | Thread | RE: [xsl] Problems copying elements, Imrran Wahid |
| Re: [xsl] Determining the type of a, Jeni Tennison | Date | Re: [xsl] Determining the type of a, David Carlisle |
| Month |