gpt4 book ai didi

c# - .NET 中的 xslt:param 数组

转载 作者:行者123 更新时间:2023-11-30 14:20:02 25 4
gpt4 key购买 nike

简单的问题,但有解决方案吗?

我有一个典型的 C# 应用程序运行“new XslCompiledTransform.Transform(...);”我正在向它传递参数参数,所有类型都是字符串。

我想向它传递一个数组类型的参数:字符串,或者甚至可以说是一个对象数组。

我正在使用 C#,但仅限于 XSL 1.0。

我如何能够以干净的方式执行此任务,以避免在 .NET 中编写不必要的代码?

最佳答案

XsltArgumentList.AddParam接受以下类型的值:

W3C Type                      Equivalent.NET Class (Type)String (XPath)                StringBoolean (XPath)               BooleanNumber (XPath)                DoubleResult Tree Fragment (XSLT)   XPathNavigatorNode Set (XPath)              XPathNodeIterator, XPathNavigator[]Node* (XPath)                 XPathNavigator

So you can't pass in an array, but you could construct an XML fragment with your values and pass it as XPathNavigator.

Example

string[] strings = new string[] { "a", "b", "c" };

XPathNavigator[] navigators =
strings.Select(s => new XElement("item", s).CreateNavigator()).ToArray();

XsltArgumentList args = new XsltArgumentList();
args.AddParam("items", "", navigators);

构造的 XML 节点如下所示:

<item>a</item>
<item>b</item>
<item>c</item>

关于c# - .NET 中的 xslt:param 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1725631/

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