fast-xml-parser 版本 4.3.6
我需要包含 xml 属性(tokenized="true"),如下所示:
<custom-tag tokenized="true">test test > 14</custom-tag>
var defaultXmlOptions = {
ignoreAttributes: false,
attributeNamePrefix: "@_",
indentBy: " ",
textNodeName: "#text",
format: true,
},
var testJson = { component: {
"custom-tag": {
"#text": "test test > 14",
"@_tokenized": true
}
}}
这是转换的代码:
var parser = new XMLBuilder(defaultXmlOptions);
var xml = parser.build(testJson);
<component>
<custom-tag tokenized>test test > 14</custom-tag>
</component>
该属性应为“true”
<component>
<custom-tag tokenized="true">test test > 14</custom-tag>
</component>
var Parser = require("fast-xml-parser").j2xParser;
var parser = new Parser(defaultXmlOptions);
var xml = parser.parse(testJson);
现在将我的项目从 CRA 转换为 Vite 无法使用 require。
suppressBooleanAttributes
。默认情况下,像 true
这样的布尔属性将在构建的 XML 中省略其值。
function demo() {
var defaultXmlOptions = {
ignoreAttributes: false,
attributeNamePrefix: "@_",
indentBy: " ",
textNodeName: "#text",
format: true,
// You need this to preserve boolean values!
suppressBooleanAttributes: false,
};
var testJson = {
component: {
"custom-tag": {
"#text": "test test > 14",
"@_tokenized": true
}
}
};
var parser = new XMLBuilder(defaultXmlOptions);
var xml = parser.build(testJson);
console.log(xml);
}
document.addEventListener("readystatechange", () => document.readyState === "complete" && demo());
<script type="module">
import { XMLBuilder } from 'https://cdn.jsdelivr.net/npm/[email protected]/+esm';
window.XMLBuilder = XMLBuilder;
</script>