saxonjs 忽略 json 输入的匹配规则
saxonjs ignores match rules for json input
我正在尝试使用 saxonjs 将 json 输入转换为 xml,这是我的代码的简化版本
const fs = require('fs');
const saxonJS = require('saxon-js');
const input = JSON.stringify({issue: {id: 'A001', number: 200 }});
saxonJS.transform({
stylesheetLocation: './issues.sef.json',
sourceType: 'json',
sourceText: JSON.stringify(input),
destination: 'serialized'}, 'async').then(data => {
console.log(data.principalResult);
res.status(200).send('Ok');
});
})
.catch(err => {
console.log(err);
res.status(500).send('error');
});
我的 xslt 样式表是这样的:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" encoding="utf-8" indent="yes"/>
<xsl:template match="/">
<Issue xmlns="urn:mycompany:2021">
</Issue>
</xsl:template>
</xsl:stylesheet>
结果始终为空或更准确地说<?xml version="1.0" encoding="utf-8"?>
如果我用 match="issue" 或 "/issue" 替换 match="/" 结果是一样的,我做错了什么?
/
匹配文档节点或文档片段节点,你的项目不是节点而是XPath 3.1映射,使用match="."
匹配任何项目,match=".[. instance of map(*)]"
匹配任何地图项目。
我正在尝试使用 saxonjs 将 json 输入转换为 xml,这是我的代码的简化版本
const fs = require('fs');
const saxonJS = require('saxon-js');
const input = JSON.stringify({issue: {id: 'A001', number: 200 }});
saxonJS.transform({
stylesheetLocation: './issues.sef.json',
sourceType: 'json',
sourceText: JSON.stringify(input),
destination: 'serialized'}, 'async').then(data => {
console.log(data.principalResult);
res.status(200).send('Ok');
});
})
.catch(err => {
console.log(err);
res.status(500).send('error');
});
我的 xslt 样式表是这样的:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" encoding="utf-8" indent="yes"/>
<xsl:template match="/">
<Issue xmlns="urn:mycompany:2021">
</Issue>
</xsl:template>
</xsl:stylesheet>
结果始终为空或更准确地说<?xml version="1.0" encoding="utf-8"?>
如果我用 match="issue" 或 "/issue" 替换 match="/" 结果是一样的,我做错了什么?
/
匹配文档节点或文档片段节点,你的项目不是节点而是XPath 3.1映射,使用match="."
匹配任何项目,match=".[. instance of map(*)]"
匹配任何地图项目。