如何从值创建节点集
我们如何从值创建一个节点集......
我有 n 个数字 1,2,3.......n。
我想创建一个节点集
<MYNMUMS>
<MYNUM>1</MYNUM>
<MYNUM>2</MYNUM>
<MYNUM>3</MYNUM>
<MYNUM>4</MYNUM>
....
<MYNUM>N</MYNUM>
</MYNMUMS>
How can we create a node set from values....
I have n numbers 1,2,3.......n.
I want to create a node set
<MYNMUMS>
<MYNUM>1</MYNUM>
<MYNUM>2</MYNUM>
<MYNUM>3</MYNUM>
<MYNUM>4</MYNUM>
....
<MYNUM>N</MYNUM>
</MYNMUMS>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
就这么简单:
XSLT 1.0 解决方案:
此转换:
当应用于任何 XML 文档(未使用)时,会产生所需的输出:
< strong>请注意以下事项:
模板
generateNumNodes
递归调用自身。此递归在时间
( O(N) )
和空间( O(log2(N)) )
上都高效并且实用确实会溢出堆栈——这里没有!上述功能是通过在 DVC 中实现递归(
DiVide and Conquer
)风格来实现的。与
尾递归
不同它将在任何兼容的XSLT处理器上成功执行。生成 1000000(一百万个数字)所需的最大递归深度仅为 19。
XSLT 2.0 解决方案:
更基本,无递归,仅使用 XPath 2.0
to
运算符:As easy as that:
XSLT 1.0 solution:
This transformation:
when applied on any XML document (not used), produces the desired output:
Do note the following:
The template
generateNumNodes
calls itself recursively.This recursion is both time
( O(N) )
, and space( O(log2(N)) )
efficient and practically does overflow the stack -- no SO here!The above feature is achieved by implementing the recursion in a DVC (
DiVide and Conquer
) style.Unlike
tail-recursion
it will be successfully executed on any compliant XSLT processor.The maximum recursion depth needed to generate 1000000 (one million numbers) is just 19.
XSLT 2.0 solution:
Even more elementary, no recursion, just using the XPath 2.0
to
operator:XSLT 是一种转换语言。 当您已经拥有 XML 文档形式的一些数据,并且希望将其转换为不同的文档(可能是也可能不是 XML 格式)时,通常会使用它。
对于从“原始”数据开始并生成 XML 表示的任务,XSLT 不太适合。
我建议您研究不同的语言来解决这个问题。
XSLT is a transformation language. It is usually used when you already have some data in the form of an XML document, that you wish to transform into a different document (that may or may not be in XML format).
For the task of starting with "raw" data and generating an XML representation, XSLT is not well-suited.
I suggest you look into different langauges to solve this.