2011-02-07 23 views
0

XML:使用XSLT自身的功能上inputed 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:

[定義的命名空間MyClass的在XSLT,這導入一個方法retunxml]

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

如何正確寫入xslt,以便它能正確返回我在xml中定義的事件標題?

+0

即使C#「function」返回一個「XmlNode」,它的返回類型也是「string」。 – Oded

+0

謝謝,錯誤。拼寫錯誤。糾正它。 –

回答

0

假設你在XSL的頂部有命名空間導入以便使用.NET XSLT擴展對象(我記不清確切的語法),我想你實際上需要改變C#代碼,以便它返回一個XPathNodeIterator對象。

有一個MSDN page解釋了XSLT參數,但我認爲類型表仍適用於XSLT擴展對象方法。這可能是有用的。基本上,如果你希望XSL從.NET方法中迭代某些東西,你將不得不返回比字符串更豐富的東西。