Package Exports
- xml-ns-parser
- xml-ns-parser/dist/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (xml-ns-parser) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
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"
}
}