XsltArgumentList.AddExtensionObject 方法
来源:互联网 发布:光速鼠标连点器源码 编辑:程序博客网 时间:2024/06/05 02:57
将新对象添至 XsltArgumentList 并将其与命名空间 URI 关联。
命名空间:System.Xml.Xsl程序集:System.Xml(在 system.xml.dll 中)
语法
Visual Basic(声明)
Public Sub AddExtensionObject ( _ namespaceUri As String, _ extension As Object _)
Visual Basic(用法)
Dim instance As XsltArgumentListDim namespaceUri As StringDim extension As Objectinstance.AddExtensionObject(namespaceUri, extension)
C#
public void AddExtensionObject ( string namespaceUri, Object extension)
C++
public:void AddExtensionObject ( String^ namespaceUri, Object^ extension)
J#
public void AddExtensionObject ( String namespaceUri, Object extension)
JScript
public function AddExtensionObject ( namespaceUri : String, extension : Object)
参数
- namespaceUri
要与对象关联的命名空间 URI。若要使用默认命名空间,请指定空字符串。
- extension
要添至列表的对象。
异常
ArgumentException
namespaceUri 是 空引用(在 Visual Basic 中为 Nothing) 或 http://www.w3.org/1999/XSL/Transform
namespaceUri 已经具有与其关联的扩展对象。
SecurityException
调用方没有足够的权限调用此方法。
备注
params 关键字,它允许传递未指定数量的参数,当前不允许此操作。使用以 params 关键字定义的方法的 XSLT 样式表将不会正确工作。有关更多信息,请参见 params(C# 参考)。
给调用者的说明 调用此方法需要 FullTrust。有关更多信息,请参见 代码访问安全性。
示例
在下面的示例中,样式表使用 XSLT 扩展对象来转换书价。
Visual Basic
复制代码
Imports SystemImports System.IOImports System.XmlImports System.Xml.XPathImports System.Xml.XslPublic Class Sample Public Shared Sub Main() ' Create the XslCompiledTransform and load the stylesheet. Dim xslt As New XslCompiledTransform() xslt.Load("prices.xsl") ' Load the XML data file. Dim doc As New XPathDocument("books.xml") ' Create an XsltArgumentList. Dim xslArg As New XsltArgumentList() ' Add an object to calculate the new book price. Dim obj As New BookPrice() xslArg.AddExtensionObject("urn:price-conv", obj) ' Transform the file. xslt.Transform("books.xml", xslArg, XmlWriter.Create("output.xml")) End Sub 'Main ' Convert the book price to a new price using the conversion factor. Public Class BookPrice Private newprice As Decimal = 0 Public Function NewPriceFunc(ByVal price As Decimal, ByVal conv As Decimal) As Decimal Dim tmp As Decimal = price * conv newprice = Decimal.Round(tmp, 2) Return newprice End Function 'NewPriceFunc End Class 'BookPriceEnd Class 'Sample
C#
复制代码
using System;using System.IO;using System.Xml;using System.Xml.XPath;using System.Xml.Xsl;public class Sample { public static void Main() { // Create the XslCompiledTransform and load the stylesheet. XslCompiledTransform xslt = new XslCompiledTransform(); xslt.Load("prices.xsl"); // Load the XML data file. XPathDocument doc = new XPathDocument("books.xml"); // Create an XsltArgumentList. XsltArgumentList xslArg = new XsltArgumentList(); // Add an object to calculate the new book price. BookPrice obj = new BookPrice(); xslArg.AddExtensionObject("urn:price-conv", obj); // Transform the file. xslt.Transform("books.xml", xslArg, XmlWriter.Create("output.xml")); } // Convert the book price to a new price using the conversion factor. public class BookPrice{ private decimal newprice = 0; public decimal NewPriceFunc(decimal price, decimal conv){ decimal tmp = price*conv; newprice = decimal.Round(tmp, 2); return newprice; } }}
C++
复制代码
#using <System.Xml.dll>using namespace System;using namespace System::IO;using namespace System::Xml;using namespace System::Xml::XPath;using namespace System::Xml::Xsl;// Convert the book price to a new price using the conversion factor.public ref class BookPrice{private: Decimal newprice;public: BookPrice() { newprice = 0; } Decimal NewPriceFunc( Decimal price, Decimal conv ) { Decimal tmp = price * conv; newprice = Decimal::Round( tmp, 2 ); return newprice; }};public ref class Sample{public: Sample() { // Create the XslCompiledTransform and load the stylesheet. XslCompiledTransform^ xslt = gcnew XslCompiledTransform; xslt->Load( "prices.xsl" ); // Load the XML data file. XPathDocument^ doc = gcnew XPathDocument( "books.xml" ); // Create an XsltArgumentList. XsltArgumentList^ xslArg = gcnew XsltArgumentList; // Add an object to convert the book price. BookPrice^ obj = gcnew BookPrice; xslArg->AddExtensionObject( "urn:price-conv", obj ); // Transform the file. xslt->Transform(doc, xslArg, XmlWriter::Create("output.xml")); }};int main(){ Sample^ test = gcnew Sample;}
J#
复制代码
import System.*;import System.IO.*;import System.Xml.*;import System.Xml.XPath.*;import System.Xml.Xsl.*;public class Sample{ public static void main(String[] args) { Sample test = new Sample(); } //main public Sample() { // Create the XslCompiledTransform and load the stylesheet. XslCompiledTransform xslt = new XslCompiledTransform(); xslt.Load("prices.xsl"); // Load the XML data file. XPathDocument doc = new XPathDocument("books.xml"); // Create an XsltArgumentList. XsltArgumentList xslArg = new XsltArgumentList(); // Add an object to convert the book price. BookPrice obj = new BookPrice(); xslArg.AddExtensionObject("urn:price-conv", obj); // Transform the file. xslt.Transform("books.xml", xslArg, XmlWriter.Create("output.xml")); } // Sample // Convert the book price to a new price using the conversion factor. public class BookPrice { private System.Decimal newprice = System.Convert.ToDecimal(0); public System.Decimal NewPriceFunc(System.Decimal price, System.Decimal conv) { System.Decimal tmp = Decimal.Multiply(price, conv); newprice = System.Decimal.Round(tmp, 2); return newprice; } //NewPriceFunc } //BookPrice} //Sample
该示例将下列数据文件用作输入。
books.xml
复制代码
<bookstore> <book genre="autobiography" publicationdate="1981" ISBN="1-861003-11-0"> <title>The Autobiography of Benjamin Franklin</title> <author> <first-name>Benjamin</first-name> <last-name>Franklin</last-name> </author> <price>8.99</price> </book> <book genre="novel" publicationdate="1967" ISBN="0-201-63361-2"> <title>The Confidence Man</title> <author> <first-name>Herman</first-name> <last-name>Melville</last-name> </author> <price>11.99</price> </book> <book genre="philosophy" publicationdate="1991" ISBN="1-861001-57-6"> <title>The Gorgias</title> <author> <name>Plato</name> </author> <price>9.99</price> </book></bookstore>
prices.xsl
复制代码
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:myObj="urn:price-conv"><!--Price conversion factor--><xsl:param name="conv" select="1.15"/> <xsl:template match="bookstore"> <bookstore> <xsl:for-each select="book"> <book> <xsl:copy-of select="node()"/> <new-price> <xsl:value-of select="myObj:NewPriceFunc(./price, $conv)"/> </new-price> </book> </xsl:for-each> </bookstore> </xsl:template></xsl:stylesheet>
- XsltArgumentList.AddExtensionObject 方法
- 用XsltArgumentList实现xsl的参数调用
- 样式表参数和扩展对象的 XsltArgumentList(利用程序编码添加脚本 != 在CDATA下添加)
- 方法
- 方法
- 方法
- 方法
- 方法
- 方法
- 方法
- 方法
- 方法
- 方法
- 方法
- 方法
- 方法
- 方法
- 方法
- Web Services概述
- fsdafsdafdsafdsf
- AJAX架构之Dojo篇
- jfreechart使用总结
- Velocity
- XsltArgumentList.AddExtensionObject 方法
- 常用的SQL
- 40种网页常用JavaScript小技巧
- 连载:大学生求职七大昏招(八)说谎(7)
- 样式表参数和扩展对象的 XsltArgumentList(利用程序编码添加脚本 != 在CDATA下添加)
- BeanUtils简读本
- 网页中插入多媒体播放器可以播放让何视频与音频文件
- JavaScript中的正则表达式
- 你受到哪位魔鬼诱惑