NaturalIntelligence / fast-xml-parser

Validate XML, Parse XML and Build XML rapidly without C/C++ based libraries and no callback.

Home Page:https://naturalintelligence.github.io/fast-xml-parser/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

`unpairedTags` option does not work correctly with text nodes

mohd-akram opened this issue · comments

  • Are you running the latest version?
  • Have you included sample input, output, error, and expected output?
  • Have you checked if you are using correct configuration?
  • Did you try online tool?

Description

The unpairedTags option does not seem to behave correctly with text nodes.

Input

Code

const assert = require('assert/strict');

const { XMLParser, XMLBuilder } = require('fast-xml-parser');

const html = '<div>1<br>2<br></div>';
console.log(html);

const parsingOptions = {
  preserveOrder: true,
  unpairedTags: ['br'],
};
const parser = new XMLParser(parsingOptions);
const result = parser.parse(html);
console.log(JSON.stringify(result, null, 2));

const builderOptions = {
  preserveOrder: true,
  unpairedTags: ['br'],
}
const builder = new XMLBuilder(builderOptions);
const output = builder.build(result);
console.log(output);

assert.equal(output, html);

Output

[
  {
    "div": [
      {
        "#text": 1
      },
      {
        "br": [
          {
            "#text": 2
          }
        ]
      },
      {
        "br": []
      }
    ]
  }
]
<div>1<br><br></div>

expected data

[
  {
    "div": [
      {
        "#text": 1
      },
      {
        "br": []
      },
      {
        "#text": 2
      },
      {
        "br": []
      }
    ]
  }
]
<div>1<br>2<br></div>

Would you like to work on this issue?

  • Yes
  • No

Bookmark this repository for further updates. Visit SoloThought to know about recent features.

We're glad you find this project helpful. We'll try to address this issue ASAP. You can vist https://solothought.com to know recent features. Don't forget to star this repo.