xiangzi_camel

导航

xml 中param & variable 相关

    这两天在Coding时发现,xml中所谓的变量是无法重复赋值的,其作用相当于平常意义上的常量。
1. param: 作为变量,param可以接受从外部传入的值。举例说明.net中调用xslt时如何传入参数:

 
#region Test
{
// Input file
objXmlPath = new XPathDocument("test-inner.xml");

// Load xslt file
XslTransform objXslTransform = new XslTransform();
try
{
    objXslTransform.Load(
"test.xslt");
}

catch
{
    
throw;
}


// Define param
XsltArgumentList objArgList = new XsltArgumentList();
objArgList.AddParam(
"author""""xiangzi");
objArgList.AddParam(
"begin_date""", System.DateTime.Now.ToString("yyyy/MM/dd"));

// Set outer file path
string strAimFilePath = "test-outer.html";
if (File.Exists(strAimFilePath))
{
    FileInfo fileInfo 
= new FileInfo(strAimFilePath);
    fileInfo.Attributes 
= FileAttributes.Normal;
}


// Output file
StreamWriter streamWriter = new StreamWriter(strAimFilePath, false, System.Text.Encoding.UTF8);
objXslTransform.Transform(objXmlPath, objArgList, streamWriter, 
new XmlUrlResolver());

streamWriter.Flush();
streamWriter.Close();
 

#endregion
 

注: 上述xslt中若需引入外部文件,则必须定义XmlResolver,否则可直接赋"null"。

test.xslt文件格式如下:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    
<xsl:output method="text" version="1.0" encoding="UTF-8" indent="yes"/>
    
<xsl:param name="author"></xsl:param>
    
<xsl:param name="begin_date"></xsl:param>



2. variable: 一般作为内部变量使用:

<xsl:variable name="Price" select="//Book/Price"></xsl:variable>
<xsl:value-of select="$Price"/>


 

posted on 2005-04-25 21:01  xiangzi  阅读(902)  评论(0)    收藏  举报