【发布时间】:2012-03-11 20:54:36
【问题描述】:
执行以下操作的最佳(最好是最有效)方法是什么:
假设我有一个这样的 XML 文档:
<comments question_id="123">
<comment id="1">
This is the first comment
</comment>
<comment id="2">
This is the second comment
</comment>
</comments>
现在,假设我指定了每个数据块的“路径”,即在这种情况下:
path: /comments/comment
我想将文档分成 n 个子部分,在本例中为 2:
<comments question_id="123">
<comment id="1">
This is the first comment
</comment>
</comments>
<comments question_id="123">
<comment id="2">
This is the second comment
</comment>
</comments>
所以,本质上,我要做的是让每个节点由“/comments/comment” 生成,但还要保留所有“外部”父节点数据。
编辑:
注意:这需要是动态的或通用的。 IE。以上数据xml只是一个例子。我希望能够将任何 xml 文档转换为这种效果,给定一个代表每个数据节点的“路径”。剩下的就是xml的外体了。
【问题讨论】:
-
XPath 允许您选择现有文档中的节点,而不是对其进行转换。对于该任务,您使用 XSLT,而不是 XPath。你想使用 XSLT 吗?你想要几个输出文件吗?或者只是将所有这些片段组合在一个文档中?
-
@MartinHonnen 感谢您的评论。我不介意使用 Xslt,所以我编辑了这个问题。我实际上想要四个单独的文件。
-
@Larry:是的,存在通用解决方案。
-
Larry,如果您想从一个 XSLT 转换中获得多个结果文档,您应该查看 XSLT 2.0 和
xsl:result-document:w3.org/TR/xslt20/#creating-result-trees。
标签: xml xslt xpath xml-parsing