|
[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
[Recent Entries]
[Reply To This Message]
Re: xsl and <Div> tags - urgent please help
Subject: Re: xsl and <Div> tags - urgent please help
From: Joerg Heinicke <joerg.heinicke@xxxxxx>
Date: Fri, 24 May 2002 00:27:49 +0200
|
I can't help you with the script - that's not my favourite ;-)
But there are still a few errors.
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/xsl/transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:foo="http://www.proquestconnect.com/mynamespace" version="1.0">
The namespace must exactly be written
"http://www.w3.org/1999/XSL/Transform".
<xsl:output method="html" version="4.0" media-type="text/html" indent="yes" encoding="iso8859-1"/>
encoding="ISO-8859-1"
^
<msxsl:script implements-prefix="foo">
var nodeInfo = null; // to store node information
var prevNodeInfo; // to store previous node's information
var nodeInformation = null; // stores the nodeInfo from previous node
function isType(node) {
prevNodeInfo = nodeInformation;
var isType = (node.getAttribute("name").charAt(0) == 'T');
if(isType)
{
fullName(this);
}
return isType;
}
function isMethod(node)
{
var name = node.getAttribute("name");
var isMethod;
if( name.indexOf("op_") >= 0 )
return false;
else
{
isMethod = (node.getAttribute("name").charAt(0) == 'M');
if(isMethod)
memberName(this);
return isMethod;
}
}
function isOperator(node)
{
var name = node.getAttribute("name");
if( name.indexOf("op_") >= 0 )
return true;
return false;
}
function getOperatorName(node) {
var returnName = "";
var name = node.getAttribute("name");
var beginOp = name.indexOf("op_") ;
var endOp = name.indexOf( "(");
nodeInfo = name.substring(beginOp+3, endOp);
return name.substring(beginOp+3, endOp);
}
function isProperty(node)
{
var isProperty = node.getAttribute("name").charAt(0) == 'P';
if(isProperty)
memberName(this);
return isProperty;
}
function isDisplayed(node)
{
var accNode = node.getElementsByTagName("access").item(0);
var type = accNode.getAttribute("type");
if(type == "public")
return true;
else
return false;
}
function isField(node)
{
var isField = (node.getAttribute("name").charAt(0) == "F");
if(isField)
memberName(this);
return isField;
}
function crefName(node) {
nodeInfo = node.getAttribute("cref").substr(2);
return nodeInfo;
}
function fullName(node) {
nodeInfo = node.getAttribute("name").substr(2);
nodeInformation = nodeInfo;
return nodeInfo;
}
function memberName(node)
{
var name = node.getAttribute("name").substr(2);
var p = name.indexOf("#ctor");
if (p >= 0) {
basename = name.substr(0, p - 1);
var params = name.substr(p + 5);
if (params == "") params = "()";
nodeInfo = basename.substr(basename.lastIndexOf(".") + 1) + params;
return nodeInfo;
}
else {
var p = name.indexOf("(");
var params;
var basename;
if (p == -1)
p = name.length + 1;
basename = name.substr(0, p);
var member = basename.substr(basename.lastIndexOf(".") + 1);
nodeInfo = member + name.substr(p);
return nodeInfo;
}
}
</msxsl:script>
<xsl:template match="/">
<xsl:apply-templates select="doc" />
</xsl:template>
<xsl:template match="doc">
<HTML>
<HEAD>
<TITLE>
<xsl:value-of select="assembly/name" />
</TITLE>
<LINK rel="stylesheet" type="text/css" href="doc.css" />
</HEAD>
<BODY>
<img src="VCLogo.gif" alt="Visual C++ Developer's Journal Logo" />
<xsl:apply-templates select="members/member" />
</BODY>
</HTML>
</xsl:template>
<xsl:template match="member">
<xsl:choose>
<xsl:when expr="foo:isType(this)">
With the standardization of some xsl-elements changed. For example it
must be <xsl:when test="foo:isType(this)"/>.
<xsl:if test="access">
<xsl:choose>
<xsl:when expr="foo:isDisplayed(this)">
<xsl:apply-templates select="a" />
<msxsl:script>
if(prevNodeInfo != null)
document.write("</DIV>");
</msxsl:script>
<a href="#" onClick="if( window.document.all.item(nodeInfo.toString()).style.visibility == 'visible')
{
window.document.all.item(nodeInfo.toString()).style.visibility == 'hidden';
}
else
{
window.document.all.item(nodeInfo.toString()).style.visibility == 'visible';
}">
<h1>
<xsl:eval>nodeInfo</xsl:eval>
<xsl:eval> doesn't exist anymore. Use <xsl:value-of select="..."/>
instead, but I don't know how to combine that with msxml script. Maybe
it's easier to convert your stylesheet from WD-XSL to XSLT via the MS
converter:
http://msdn.microsoft.com/downloads/default.asp?url=/downloads/sample.asp?url=/msdn-files/027/000/540/msdncompositedoc.xml
Hope this helps a bit,
Joerg
</h1>
</a>
<msxsl:script>
document.write("<DIV id=" +nodeInfo +">");
</msxsl:script>
<xsl:apply-templates select="summary" />
<xsl:apply-templates select="remarks" />
<xsl:apply-templates select="example" />
<xsl:if test="seealso">
<h4>See Also</h4>
<xsl:apply-templates select="seealso" />
</xsl:if>
<xsl:apply-templates select="members/member" />
</xsl:when>
</xsl:choose>
</xsl:if>
</xsl:when>
<xsl:when expr="foo:isMethod(this)">
<xsl:if test="access">
<xsl:choose>
<xsl:when expr="foo:isDisplayed(this)">
<xsl:apply-templates select="a" />
<h2>
<xsl:eval>nodeInfo</xsl:eval> method</h2>
<xsl:apply-templates select="summary" />
<xsl:if test="param">
<h4>Parameters</h4>
<dl>
<xsl:apply-templates select="param" />
</dl>
</xsl:if>
<xsl:apply-templates select="returns" />
<xsl:if test="exception">
<h4>Exceptions</h4>
<dl>
<xsl:apply-templates select="exception" />
</dl>
</xsl:if>
<xsl:apply-templates select="remarks" />
<xsl:apply-templates select="example" />
<xsl:if test="seealso">
<h4>See Also</h4>
<xsl:apply-templates select="seealso" />
</xsl:if>
</xsl:when>
</xsl:choose>
</xsl:if>
</xsl:when>
<xsl:when expr="foo:isOperator(this)">
<xsl:apply-templates select="a" />
<h2>
<xsl:eval> getOperatorName(this) </xsl:eval> operator
</h2>
<xsl:apply-templates select="summary" />
<xsl:if test="param">
<h4>Parameters</h4>
<dl>
<xsl:apply-templates select="param" />
</dl>
</xsl:if>
<xsl:apply-templates select="returns" />
<xsl:if test="exception">
<h4>Exceptions</h4>
<dl>
<xsl:apply-templates select="exception" />
</dl>
</xsl:if>
<xsl:apply-templates select="remarks" />
<xsl:apply-templates select="example" />
<xsl:if test="seealso">
<h4>See Also</h4>
<xsl:apply-templates select="seealso" />
</xsl:if>
</xsl:when>
<xsl:when expr="foo:isProperty(this)">
<xsl:if test="access">
<xsl:choose>
<xsl:when expr="isDisplayed(this)">
<xsl:apply-templates select="a" />
<h2>
<xsl:eval>nodeInfo</xsl:eval> property
</h2>
<xsl:apply-templates select="summary" />
<xsl:if test="param">
<h4>Parameters</h4>
<dl>
<xsl:apply-templates select="param" />
</dl>
</xsl:if>
<xsl:apply-templates select="value" />
<xsl:if test="exception">
<h4>Exceptions</h4>
<dl>
<xsl:apply-templates select="exception" />
</dl>
</xsl:if>
<xsl:apply-templates select="remarks" />
<xsl:apply-templates select="example" />
<xsl:if test="seealso">
<h4>See Also</h4>
<xsl:apply-templates select="seealso" />
</xsl:if>
</xsl:when>
</xsl:choose>
</xsl:if>
</xsl:when>
<xsl:when expr="foo:isField(this)">
<xsl:if test="access">
<xsl:choose>
<xsl:when expr="isDisplayed(this)">
<xsl:apply-templates select="a" />
<h2>
<xsl:eval>nodeInfo</xsl:eval> field
</h2>
<xsl:apply-templates select="summary" />
<xsl:apply-templates select="value" />
<xsl:apply-templates select="remarks" />
<xsl:apply-templates select="example" />
<xsl:if test="seealso">
<h4>See Also</h4>
<xsl:apply-templates select="seealso" />
</xsl:if>
</xsl:when>
</xsl:choose>
</xsl:if>
</xsl:when>
</xsl:choose>
</xsl:template>
<xsl:template match="access">
<xsl:apply-templates />
</xsl:template>
<xsl:template match="summary">
<p>
<xsl:apply-templates />
</p>
</xsl:template>
<xsl:template match="param">
<dt>
<i>
<xsl:value-of select="@name" />
</i>
</dt>
<dd>
<xsl:apply-templates />
</dd>
</xsl:template>
<xsl:template match="value">
<h4>Value</h4>
<xsl:apply-templates />
</xsl:template>
<xsl:template match="returns">
<h4>Returns</h4>
<xsl:apply-templates />
</xsl:template>
<xsl:template match="exception">
<dt>
<i>
<xsl:eval>crefName(this)</xsl:eval>
</i>
</dt>
<dd>
<xsl:apply-templates />
</dd>
</xsl:template>
<xsl:template match="remarks">
<h4>Remarks</h4>
<xsl:apply-templates />
</xsl:template>
<xsl:template match="example">
<h4>Example</h4>
<xsl:apply-templates />
</xsl:template>
<xsl:template match="seealso">
<br />
<a>
<xsl:attribute name="href">#<xsl:value-of select="@cref" /></xsl:attribute>
<xsl:apply-templates select="text()" />
</a>
</xsl:template>
<xsl:template match="text()">
<xsl:value-of />
</xsl:template>
<xsl:template match="para">
<p>
<xsl:apply-templates />
</p>
</xsl:template>
<xsl:template match="code">
<pre>
<xsl:value-of />
</pre>
</xsl:template>
<xsl:template match="see">
<link>
<xsl:attribute target="href">#<xsl:value-of select="@cref" /></xsl:attribute>
<xsl:apply-templates select="text()" />
</link>
</xsl:template>
<xsl:template match="list">
<table>
<xsl:apply-templates />
</table>
</xsl:template>
<xsl:template match="listheader">
<tr>
<xsl:apply-templates />
</tr>
</xsl:template>
<xsl:template match="item">
<tr>
<xsl:apply-templates />
</tr>
</xsl:template>
<xsl:template match="term">
<td>
<xsl:apply-templates />
</td>
</xsl:template>
<xsl:template match="description">
<td>
<xsl:apply-templates />
</td>
</xsl:template>
<xsl:template match="i">
<i>
<xsl:apply-templates />
</i>
</xsl:template>
<xsl:template match="b">
<b>
<xsl:apply-templates />
</b>
</xsl:template>
<xsl:template match="c">
<code>
<xsl:apply-templates />
</code>
</xsl:template>
<xsl:template match="a">
<a>
<xsl:attribute name="name">
<xsl:value-of select="@cref" />
</xsl:attribute>
</a>
</xsl:template>
<xsl:template match="paramref">
<i>
<xsl:value-of select="@name" />
</i>
</xsl:template>
</xsl:stylesheet>
Thanks for your help.
Aparna
--
On Thu, 23 May 2002 20:38:07
Joerg Heinicke wrote:
Again a problem with WD-XSL, change to XSLT standard. A <xsl:script/>
doesn't exist. And where do you want to write the closing </DIV>? Either
you put it out as normal Javascript (with escaping the <, not the /):
<xsl:text>document.write("</DIV>");</xsl:text>
or you do it with normal XML. But for help with this you must provide
more information. And change your xsl-namespace to
"http://www.w3.org/1999/XSL/Transform".
Regards,
Joerg
Aparna Konduri schrieb:
Thanks. Can I know why the following gives an error? How to close a tag inside <xsl:script>?
<xsl:script>
document.write("<\/DIV>");
</xsl:script>
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
________________________________________________________
Outgrown your current e-mail service?
Get a 25MB Inbox, POP3 Access, No Ads and No Taglines with LYCOS MAIL PLUS.
http://login.mail.lycos.com/brandPage.shtml?pageId=plus
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list

|
PURCHASE STYLUS STUDIO ONLINE TODAY!
Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!
Download The World's Best XML IDE!
Accelerate XML development with our award-winning XML IDE - Download a free trial today!
Subscribe in XML format
| RSS 2.0 |
|
| Atom 0.3 |
|
|