2011-08-08 112 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技巧来访问它。