在解析和生成XML文档时,哪些fast-xml-parser选项保留名称空间和属性?

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

我应该使用哪些fast-xml-parser选项将输入的XML文档解析为JSON,然后编写相同的XML文档,并保留所有名称空间,属性名称和值?

javascript xml parsing xml-parsing
1个回答
0
投票

由于要保留属性和名称空间,因此ignoreAttributesignoreNameSpace应该设置为false。从XML解析为JS对象然后再解析为XML时,属性前缀应该相同。这是完整的示例;

const xmlInput = `<any_name a="abc">
        <ns:person>
            <name1>Jack 1</name1 >
            <name2>35</name2>
        </ns:person>
    </any_name>`;

const options = {
    attributeNamePrefix : "@_",
    //attrNodeName: false,
    //textNodeName : "#text",
    ignoreAttributes : false,
    ignoreNameSpace: false,
};

const jsonOptions = {
    attributeNamePrefix : "@_",
    //attrNodeName: false,
    //textNodeName : "#text",
    ignoreAttributes : false,
    ignoreNameSpace: false,
    //format: true,
    //indentBy: "  ",
    //supressEmptyNode: false,
};

const json  = x2jParser.parse(xmlInput, options);
const parserJson = new j2xParser(jsonOptions);
const xmlOutput  = parserJson.parse(json, jsonOptions);

输入XML

<any_name a="abc">
    <ns:person>
        <name1>Jack 1</name1 >
        <name2>35</name2>
    </ns:person>
</any_name>

输出XML

<any_name a="abc">
  <ns:person>
    <name1>Jack 1</name1>
    <name2>35</name2>
  </ns:person>
</any_name>
© www.soinside.com 2019 - 2024. All rights reserved.