0.0.16 • Published 3 years ago
xml-ns-parser v0.0.16
xml-ns-parser
A parser for xml that creates a JSON struct which retains all information including attributes and namespaces
structure
Every xml element will be transformed in a JSON object that contains the properties children, attributes, name and scope.
children
is an array of the child elementsattributes
contains the attributes. Its a attribute-name value map.name
has alocaland anamespaceproperty. Wherelocalcontains the local name of the element andnamespacethe namespacescope
contains the mapping of prefixes in xml to actual namespace. Together with thegetTagName()function it can resolve prefixes to actuall namespaces.
samlpe
The xml
<test foo='bar' />will translate to the JSON
{
"children": [],
"attributes": {
"foo": "bar"
},
"name": {
"local": "test",
"namespace": ""
},
"scope": {
"": ""
}
}Notice since the xml did not defined any namespaces the coressponding namespace fileds contain the an empty string.
Or a more complex samlpe that utilise namespaces
<Persons xmlns='https://person.org' xmlns:address='https://address.org' xmlns:age='https://age.org'>
<Person name='Mike' age='20'>
<Frind>Paul</Frind>
<Frind>Sebastian</Frind>
</Person>
<Person name='Paul' age='22'>
<Frind>Mike</Frind>
<address:street>Main Street 3</address:street>
</Person>
</Persons>{
"children": [
{
"children": [
{
"children": [],
"text": "Paul",
"attributes": {},
"name": {
"local": "Frind",
"namespace": "https://person.org"
},
"scope": {
"": "https://person.org",
"address": "https://address.org",
"age": "https://age.org"
}
},
{
"children": [],
"text": "Sebastian",
"attributes": {},
"name": {
"local": "Frind",
"namespace": "https://person.org"
},
"scope": {
"": "https://person.org",
"address": "https://address.org",
"age": "https://age.org"
}
}
],
"attributes": {
"name": "Mike",
"age": "20"
},
"name": {
"local": "Person",
"namespace": "https://person.org"
},
"scope": {
"": "https://person.org",
"address": "https://address.org",
"age": "https://age.org"
}
},
{
"children": [
{
"children": [],
"text": "Mike",
"attributes": {},
"name": {
"local": "Frind",
"namespace": "https://person.org"
},
"scope": {
"": "https://person.org",
"address": "https://address.org",
"age": "https://age.org"
}
},
{
"children": [],
"text": "Main Street 3",
"attributes": {},
"name": {
"local": "street",
"namespace": "https://address.org"
},
"scope": {
"": "https://person.org",
"address": "https://address.org",
"age": "https://age.org"
}
}
],
"attributes": {
"name": "Paul",
"age": "22"
},
"name": {
"local": "Person",
"namespace": "https://person.org"
},
"scope": {
"": "https://person.org",
"address": "https://address.org",
"age": "https://age.org"
}
}
],
"attributes": {},
"name": {
"local": "Persons",
"namespace": "https://person.org"
},
"scope": {
"": "https://person.org",
"address": "https://address.org",
"age": "https://age.org"
}
}