stopNodes doesn't work with removeNSPrefix (original) (raw)

Description

stopNodes doesn't work with xml documents that use namespaces when removeNSPrefix is set. This issue is documented by the comment at https://github.com/NaturalIntelligence/fast-xml-parser/blob/v4.2.7/src/xmlparser/OrderedObjParser.js#L308

The stopNodes feature should work with xml that uses namespaces with removeNSPrefix=true.

Input

test 1namespace:fix1

p 1

div 1

Code

const xmlData = `<issue><title>test 1</title><namespace:fix1><p>p 1</p><div class="show">div 1</div></namespace:fix1></issue>`;
const expected = {
  "issue": {
    "title": "test 1",
    "fix1": "<p>p 1</p><div class=\"show\">div 1</div>"
  }
};

const options = {
  attributeNamePrefix: "",
  ignoreAttributes: false,
  parseAttributeValue: true,
  removeNSPrefix: true,
  stopNodes: ["issue.fix1"]
};
const parser = new XMLParser(options);
let result = parser.parse(xmlData);

// console.log(JSON.stringify(result,null,4));
expect(result).toEqual(expected);

Output

Error: Unexpected end of fix1

expected data

const expected = {
  "issue": {
    "title": "test 1",
    "fix1": "<p>p 1</p><div class=\"show\">div 1</div>"
  }
};

Would you like to work on this issue?

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