在输入XML上使用XSLT自己的函数

时间:2011-02-07 13:56:23

标签: c# xml xslt

XML:

<root> 
  <event title="Title1" />
  <event title="Title2" />
</root> 

C#

public static string **retunxml**(){
    XmlNode xmln_list = [a xmlnode list which I get it from web service];
    return "<root>"+xmln_list.InnerXml+"</root>";
}

XSLT:

[在xslt中定义名称空间 myclass ,导入方法retunxml]

<xsl:for-each select="myclass:retunxml()/event" >
    <xsl:value-of select="@title"/>                   
</xsl:for-each>

如何正确编写xslt,以便正确返回xml中定义的事件标题?

1 个答案:

答案 0 :(得分:0)

假设您在XSL顶部有名称空间导入以便使用.NET XSLT扩展对象(我不记得确切的语法),我认为您实际上需要更改C#代码以便它返回一个XPathNodeIterator对象。

有一个MSDN page解释了XSLT参数,但我认为类型表仍然适用于XSLT扩展对象方法。这可能是有用的。基本上,如果您希望XSL从.NET方法迭代某些东西,那么您将不得不返回比字符串更丰富的东西。