2011-08-08 138 views
1

我想將XMLdocument本身作爲參數傳遞給XSLT(無需物理保存XML)。有沒有辦法做到這一點。我的函數接受兩個Xmldocument,並需要根據這兩個XML創建新的XML。將XMLDocument作爲參數傳遞給XSLT

+0

當你說'參數'時,你是指.NET方法的參數還是XSLT樣式表的參數? – Flynn1179

+0

它是我使用XSLTarguments傳遞給XSLT的一個參數。我想訪問XSLT中的XMLDocument。在這裏我使用多個XML來創建單個XML。所有的XML都是作爲XMLDocument類型的參數傳遞給函數 – i0707

回答

1

該轉換接受一個XmlReader;您可以爲DOM中的任何元素(通常是文檔元素)創建一個XmlNodeReader(這就夠了)。

+0

可以請您提供一些代碼示例 – i0707

+0

@ i0707如果您願意,可以稍後添加一些示例,但多少有點像MSDN上的示例:http://msdn.microsoft .com/en-us/library/system.xml.xsl.xslcompiledtransform.aspx,但爲源對象傳入'new XmlNodeReader(rootNode)' –

+0

我試過如下,但它不起作用XmlDocument testXml = new XmlDocument( ); testXml.Load(@ 「d:\ search.xml」); XmlNode xmlNode = testXml.SelectSingleNode(「response」); XmlNodeReader xmlNodeReader = new XmlNodeReader(xmlNode); arguments.AddParam(「SearchXml」,「」,xmlNodeReader); – i0707

0

你最好只是結合你的xml文檔節點並對整個事物進行轉換。有些方法可以將xml作爲參數傳遞,但它們都不是很漂亮,而且在你做這些事情之後,你仍然會被迫使用一些xsl技巧來訪問它。