[Home] [By Thread] [By Date] [Recent Entries]
At 01:36 PM 5/7/2002, you wrote:
It rather depends on you XML and whether or not you're aware of the structure. Let's say, for example, that you assume that the element in question is known to not have grandchildren, and that the text within the children do not have whitespace. In other diagrams, it looks like this: <foo> <a>text</a> <b/> <c></c> <d>more_text</d> </foo> You can create "?a=text&b=&c=&d=more_text" using the stylesheet
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:text>query-string = "</xsl:text>
<xsl:apply-templates select="foo/*" mode="query"/>
<xsl:text>"</xsl:text>
</xsl:template> <xsl:template match="*" mode="query">
<xsl:if test="position() = 1">
<xsl:text>?</xsl:text>
</xsl:if>
<xsl:value-of select="local-name(.)"/>
<xsl:text>=</xsl:text>
<xsl:value-of select="string(.)"/>
<xsl:if test="last() != position()">
<xsl:text disable-output-escaping="yes"><![CDATA[&]]></xsl:text>
</xsl:if>
</xsl:template>
</xsl:stylesheet>If the text has whitespace, you'll need to convert it to an equivalent HTML-encoded character (i.e. a space becomes %20). the same goes for other special characters like ampersands, punctuation, etc.
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|

Cart



