gpt4 book ai didi

asp.net - XSLT : Cannot convert the operand to 'Result tree fragment'

转载 作者:数据小太阳 更新时间:2023-10-29 01:58:18 24 4
gpt4 key购买 nike

我在处理 xslt 样式表,我应该接收两个额外的 XML 作为参数。使用 node-set() 方法(来自命名空间 ms,microsoft)时出现错误。 XML 的内容是正确的。参数使用经典 ASP 发送。

这是标题和 xslt 中的调用:

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
xmlns:ms="urn:schemas-microsoft-com:xslt"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
>
...
<xsl:param name="xmlPlanning"></xsl:param>
<xsl:variable name="myXml" select="ms:node-set($xmlPlanning)"></xsl:variable>
<xsl:value-of select="ms:node-set($xmlPlanning)/*"/>

这是错误的堆栈跟踪:

[XsltException: Impossible de convertir l'opérande en 'fragment de l'arborescence résultat'.]
System.Xml.Xsl.XsltOld.XsltFunctionImpl.ToNavigator(Object argument) +380943
System.Xml.Xsl.XsltOld.FuncNodeSet.Invoke(XsltContext xsltContext, Object[] args, XPathNavigator docContext) +33
MS.Internal.Xml.XPath.FunctionQuery.Evaluate(XPathNodeIterator nodeIterator) +292

[XPathException: Échec de la fonction 'ms:node-set()'.]
MS.Internal.Xml.XPath.FunctionQuery.Evaluate(XPathNodeIterator nodeIterator) +347
System.Xml.Xsl.XsltOld.Processor.RunQuery(ActionFrame context, Int32 key) +24
System.Xml.Xsl.XsltOld.VariableAction.Execute(Processor processor, ActionFrame frame) +200
System.Xml.Xsl.XsltOld.ActionFrame.Execute(Processor processor) +20
System.Xml.Xsl.XsltOld.Processor.Execute() +82
System.Xml.Xsl.XsltOld.Processor.Execute(TextWriter writer) +96
System.Xml.Xsl.XslTransform.Transform(XPathNavigator input, XsltArgumentList args, TextWriter output, XmlResolver resolver) +68
System.Xml.Xsl.XslTransform.Transform(IXPathNavigable input, XsltArgumentList args, TextWriter output, XmlResolver resolver) +43
System.Web.UI.WebControls.Xml.Render(HtmlTextWriter output) +132

这是我在参数中收到的 xml 的开头:

<?xml version="1.0" encoding="UTF-8"?>
<ArrayOfGenerationPlanningDesign xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://webservices.secureholiday.net/">
<GenerationPlanningDesign>

我的问题是什么?

最佳答案

如果您传递的参数已经是一个真正的节点集(.NET 中的 XPath 导航器或 XPathNodeIterator 或 MSXML 的 IXMLDOMNodeList),您不需要也不能使用 ms:node-set() 扩展函数。 只需删除对 ms:nodeset() 的调用即可。

万一它是一个表示 XML 的字符串——那么它不应该!将此字符串解析为节点集允许的参数类型之一,然后才调用转换——使用真正的节点集。

关于asp.net - XSLT : Cannot convert the operand to 'Result tree fragment' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3976176/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com