I have a simple Web response.body from my NodeJS request which is looking like this, and I need to put the ProjectNr and Description in an Array - I tried some parsers but none of them works for me (DomParser etc.) I just don't know what to do, since when I use the .getElementbyName or .getElementbyTagname and search for "ProjectNr" I just get "undefined" as an answer. Please help me. Thanks a lot!
<XYZNetWebService xmlns="http://abcdefs">
<XYZNetResponse Guid="asfdsafdsa23c6"
LastAccess="2022-02-24" Report="Projects" Parameter="" status="200">
<Project>
<ProjectNr>505</ProjectNr>
<Description>Testproject</Description>
</Project>
<Project>
<ProjectNr>123</ProjectNr>
<Description>Project2</Description>
</Project>
you can transform with camaro like this
const { transform } = require('camaro')
async function main() {
const xml = `
<XYZNetWebService xmlns="http://abcdefs">
<XYZNetResponse Guid="asfdsafdsa23c6"
LastAccess="2022-02-24" Report="Projects" Parameter="" status="200">
<Project>
<ProjectNr>505</ProjectNr>
<Description>Testproject</Description>
</Project>
<Project>
<ProjectNr>123</ProjectNr>
<Description>Project2</Description>
</Project>
</XYZNetResponse>
</XYZNetWebService>
`
const template = {
projectNr: ['//Project', 'ProjectNr'],
projectDesc: ['//Project', 'Description']
}
const output = await transform(xml, template)
console.log(output);
}
main()
output
{
projectNr: [ '505', '123' ],
projectDesc: [ 'Testproject', 'Project2' ]
}