Saxon-JS JSON 到 XML 转换仅返回 SEF 文件中的数据

问题描述 投票:0回答:1

我正在尝试创建一个 Javascript 工具,可以使用 Saxon-JS 将 AuthzForce 的 XACML 策略转换为 JSON 并返回。此文档提供了所需的 XSL 样式表。从 XML 转换为 JSON 可以顺利进行,但我在将 JSON 转换回 XML 时遇到问题。

转换函数返回包含所有值数据的响应,其中键已从“principalResult”的“textContent”中的 SEF 文件中剥离。

这是我编写的用于启动转换并返回 XML 字符串的函数:

function transformJsonToXml(input) {
  
  //Convert JSON object to string
  input = JSON.stringify(input);
  
  //Options for SaxonJS transformer
  var options = {
    stylesheetLocation: jsonToXmlStylesheet,
    sourceType: "json",
    inJsonFile: input,
    destination: "document",
    logLevel: "2"
  };

  //Transformation of JSON to XML
  let result = SaxonJS.transform(options);
  let policyXml = SaxonJS.serialize(result.principalResult);

  //Return the transformation result
  return policyXml;
}

这是我在“policyXml”中返回的内容的开始,它只是来自 SEF 的数据,但没有任何 JSON 格式:

package301SaxonJS 2.6JS2TOP-LEVELtrue2024-04-03T14:59:27.482+01:00xml=~ xsl=~ xacml=urn:oasis:names:tc:xacml:3.0:core:schema:wd-17

This 是我使用命令

xslt3 -t -xsl:stylesheet.xsl -export:stylesheet.sef.json -nogo -relocate:on -ns:##html5
转换为 SEF 的 XSL 文件。生成的 SEF 文件可以在此处找到。

javascript json xml saxon-js
1个回答
0
投票

SaxonJS 的文档 https://www.saxonica.com/saxon-js/documentation2/index.html#!api/transform 显示了选项

sourceText
,我认为您想要将其设置为
sourceText : input

我不确定您在哪里找到该选项

inJsonFile

© www.soinside.com 2019 - 2024. All rights reserved.