简单的问题,但是解决方案?
我有一个典型的C#应用程序运行"new XslCompiledTransform.Transform(...);" 我传递param参数,所有类型字符串.
我想传递一个类型为array的字符串:字符串,甚至可以说是一个对象数组.
我正在使用C#我受限于XSL 1.0.
我怎样才能以干净的方式完成这项任务,以避免在.NET中编写不必要的代码?
XsltArgumentList.AddParam接受以下类型的值:
W3C Type Equivalent.NET Class (Type) String (XPath) String Boolean (XPath) Boolean Number (XPath) Double Result Tree Fragment (XSLT) XPathNavigator Node Set (XPath) XPathNodeIterator, XPathNavigator[] Node* (XPath) XPathNavigator
因此,您无法传入数组,但可以使用您的值构造XML片段并将其作为XPathNavigator传递.
例
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);
Run Code Online (Sandbox Code Playgroud)
构造的XML节点如下所示:
<item>a</item>
<item>b</item>
<item>c</item>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1912 次 |
| 最近记录: |