问题标签 [xslt-3.0]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
946 浏览

json - 使用 XPath 3.1 fn:serialize 进行 JSON 序列化

我在 Saxon-HE 9.8 中使用 XSLT 3.0 并希望将 JSON 文档作为JSON-LD中的链接数据使用。在 JSON-LD 中,完整的 HTTP URI 通常显示为值。

当我使用 XPath 3.1fn:serialize将数据往返返回到 JSON 时,其中的固线字符http://被转义。序列化回 JSON 时是否可以避免这种转义?

fn:parse-json函数有一个escape可以设置为true()or的参数false(),但我没有看到任何类似的fn:serialize.

我可以使用 删除转义字符fn:replace,但想知道是否有一种我缺少的内置方法可以做到这一点。

示例样式表:

没有fn:replace,结果是{"@context":"http:\/\/schema.org"}。有了fn:replace,结果就是{"@context":"http://schema.org"}

0 投票
1 回答
5088 浏览

java - 如何在 Java 应用程序中使用 XSLT 3.0?

我用来处理XSLTXML文件的一般 java 代码是:

我必须处理XSLT3.0 版本才能使用以下功能:

解析 xml 片段()

这个版本的XSLT说法会引发错误:

未找到 parse-xml-fragment() 作为函数

我的输入 XML :

XSLT 代码:

预期输出:

任何人都可以提供解决方案吗?

0 投票
2 回答
1685 浏览

xslt-2.0 - BizTalk Server 2016 映射中是否支持 XSLT 2.0 或 3.0?

过去,BizTalk(以及一般的 .NET 框架)不支持除 1.0 之外的任何 XSLT 版本。我们公司即将升级到 BizTalk Server 2016,我想知道是否可以(并且本机支持)在所述 BizTalk Server 版本中使用 XSLT 2.0 或 3.0 进行自定义映射?

我知道他们不太可能实现了这一点,但我一直在互联网上漫游,我似乎无法找到这个问题的具体答案。

0 投票
2 回答
576 浏览

xml - 具有特定子节点的模板匹配节点 - 流式 XSLT

我想选择在 Addl_Information 部分出现 Plan 子节点的 Worker 节点

当我使用上面的代码时,我收到来自 Saxon-EE 9.6.0.5 处理器的错误说

我究竟做错了什么?

我在w3c 网站上看到了(类似的)静止模式的例子,但它对我不起作用,请指教。

更新:这是我的样式表。我试图只包括在他们的工人数据中记录了某个计划的人。请注意,下面的patth变量是我试图评估的另一个角度 - 基本上在剩余代码周围有一个 IF 条件。那也行不通。

0 投票
1 回答
2851 浏览

xslt - 使用 xslt 的 Json 到 XML

我能够使用 XSLT 3.0 将 JSON 转换为 XML。转换为 XML 字段时,主题中的数据缺少 XML 结构。

XSLT:

Java 代码:

错误:

0 投票
1 回答
1691 浏览

xslt - 将 xml 转换为 json 时出错

当我在 java 中使用 XSLT 从 XML 转换为 JSON 时,会发生以下错误:

fn:xml-to-json() 的第一个参数的必需项类型是 node();提供的值具有项目类型 xs:string

XML:

XSLT(Xml 到 Json):

错误 :

0 投票
1 回答
446 浏览

html - 使用 XSLT 2.0/3.0 使用多个步骤将 CDATA 中的纯文本解析为 html。那里的一部分

我有一个使用 XSLT 2.0/3.0 的工作流程,它使用支持 XSLT 3.0 的 Saxon-HE 最新版本,它将 XML 文件中的 CDATA 部分的文本标记为 HTML。该文本没有 HTML 标记,但有最少的纯文本标记,它依赖于新行和行首方括号中的标记。工作过程(此处未显示)使用多个阶段将文本设置在变量中,使用带有模式和大量的替换函数<> '逐步进入最后一步。它不仅难以阅读,而且如果我想向标记添加另一个更改,它的可扩展性也不是很好。我已经开始尝试在下面构建一个更好的标记过程,但被卡住了。

这是我修剪的 XML 文件结构的一个小示例:

这些是我想对 CDATA 中的文本采取的一些步骤

  1. 使用 \n 新行标记所有行
  2. 以方括号中的单词开头的行(例如,[witness])<div>使用括号中的类(例如,<div class="witness">rest of line</div>)标记
  3. 剩余的行用<p>标签标记
  4. 所有空行都被消除
  5. 扫描上面的<div><p>文本节点中的文本以进行进一步处理:
  6. 找到任何一对单引号(即成对的撇号)后跟 1 到 4 个大写或小写字母并放入<sup></sup>(例如,第 25'' 变成25<sup>th</sup>
  7. <div>将相同类名的相邻分组到<div>某个名称的外部,例如

    /li>
  8. 根据需要附加标记。

我通过第 6 步(5 步的一半)得到了我想要的东西,尽管结构可能很差。这个样式表有效,并为我提供了我在更长的以前的样式表和模板中所拥有的大部分内容。

这是我的XSLT 3.0样式表和模板的缩短版本:

对于完成此类标记的更好方法以及如何使其可扩展并完成例如列出的最后一步的任何建议,我将不胜感激。在过去的几个月里,我已经尝试过让这个过程更简单,这是迄今为止我得到的最接近的。对任何滥用术语、长示例和代码的新手状态表示歉意。

迈克尔

0 投票
1 回答
380 浏览

xslt - How to walk through unknown content of the result of parse-xml-fragment using templates using XSLT 3?

Good evening,

I have a problem with passing the result of "parse-xml-fragment" to templates using XSL-T 3.0. I am using Saxon-PE 9.7.0.15 (Java version bundled in the latest oXygen 19). I would like to be able to apply (already) defined templates to the resulted "document-node" from "parse-xml-fragment" as if it was the part of original XML document and not the base64 content of one defined attribute. In other words I need to walk through the unknown content of the result of "parse-xml-fragment".

I am able to get the values from base64 content using for example

but it supposes, that I know the structure and content of the base64 value of the given attribute, I am do not know.

XML file is:

XSL-T 3.0 file (which does not work as I want) is:

Desired output is something like (formatting is not important now):

Thank You very much for Your help in advance. Stepan

0 投票
1 回答
1915 浏览

xslt - XSLT 3.0 中的 JSON 到 XML 的转换

我正在尝试使用 json-to-xml 函数在 XSLT 3.0 中将 JSON 数据转换为 XML,但生成的 xml 与预期不符

例如输入 JSON:

}

从 XSLT3.0 生成的 XML:

预期的 XML 格式:

我的主要问题是忽略这些关键属性并将属性(键)值作为元素名称和实际文本作为元素文本。

你们能帮我实现这一目标吗?

0 投票
2 回答
872 浏览

xml - xslt 结果文档覆盖或跳过具有重复 uri 的文件

当输出文件具有重复的 URI 时,有没有办法让 xsl:result-document 覆盖或跳过文件?我想我不必提供一个例子。我有一个包含重复条目的数据库。我知道我可以输入一个 id,然后从 60000 个文件的名称中删除 id

此致。