【发布时间】:2010-10-28 08:49:06
【问题描述】:
在我正在转换的 XML 文档的中间,有一个 CDATA 节点,我知道它本身是由 XML 组成的。我希望将“递归解析”为 XML,以便我也可以对其进行转换。经过搜索,我认为我的问题与Handling node containing inner escaped XML非常相似。
那是一年前的事了:我可以澄清一下吗:
- 它说某些 XSLT 不能一次性完成:相反,您需要一个两阶段的方法。我刚买了一本关于 XSLT 2.0 的闪亮新书。是否仍然没有 XSLT 指令将字符串节点“重新解析”为 XML?
- 在我的例子中,XML 字符串节点只是整个节点中的一个。因此,在第 1 阶段,我将只转换输入 XML 文档的一个片段;其余的需要原封不动地通过第 2 阶段。我看到了几种将输入传递到输出不变的解决方案,但通常它们似乎“主要工作”,但跳过/不处理某种节点输入。是否有可靠的结构可以在不进行任何更改的情况下将其余输入传递给输出?
- 这种方法依赖于我能够分别应用 2 个转换。我被限制(现有应用程序)只能被允许 one 转换(XML 输出是固定的;它由一个 XSLT 文件转换;我唯一能做的就是将我喜欢的任何内容放入该 XSLT 文件中, 和/或添加更多 XSLT 文件,但我无法影响通过一个 XSLT 文件传递 XML 的顶级调用)。我可以将任何内容放入 XSLT 文件中,从而导致调用第二个 XSLT 转换吗?
【问题讨论】:
-
这个问题很不清楚——即使它实际上是 3 个问题,也证明了这一点。 XSLT 功能中没有解析,但如果您等待 XSLT 3.0,可能会有。最好发布一个带有特定 XML 文档的具体示例并指定结果应该是什么。那么很有可能找到解决方案——你怎么知道你选择的方法是唯一可能的?
-
同意@Dimitre,示例 XML 输入文档会有所帮助。
-
无法想象什么是“不清楚”。如果一个人对某事有多个问题,那就不清楚了?!如果您真的想要一个示例文档,请使用链接问题中的那个。提供样本文档可能会鼓励其他人对其内容发表评论,或者如何生成 XML,这完全无关紧要。嗯嗯。
-
我理解您关于示例文档在理论上无关紧要的观点,但只有当您确定您已将有关它的所有相关信息传输到我们。我想现在已经完成了,但它花了几个小时来回,而且我的大部分写作都是被误导的兔子足迹,其中一些可以通过示例文档保存。由于您不知道解决方案是什么,您如何确定您是否提到了所有相关细节?