这是我的xml
<?xml version="1.0" encoding="utf-8"?>
<p:Order xmlns:p="http://no.lyse.ikt.altisalg.Order" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="filename.xsd" source="AltiSalg 2.4.4-IB-154-IB-154 (154)"><p:Customer><p:OrderId></p:OrderId>
<p:FirstName></p:FirstName>
<p:LastName></p:LastName>
<p:EmailAddress></p:EmailAddress>
<p:BirthDate></p:BirthDate>
<p:CellularPhone></p:CellularPhone>
<p:City></p:City>
<p:Country></p:Country>
<p:PostalCode></p:PostalCode>
<p:StreetAddress></p:StreetAddress>
<p:PartnerId></p:PartnerId>
<p:CommunicationPreferences><p:Phone></p:Phone>
<p:Email></p:Email>
<p:Mail></p:Mail>
<p:SMS></p:SMS>
</p:CommunicationPreferences>
<p:ServiceAgreement><p:AgreementType></p:AgreementType>
<p:AgreementStartDate></p:AgreementStartDate>
<p:AgreementStatus></p:AgreementStatus>
<p:Comment></p:Comment>
<p:ListOfAssets><p:Asset><p:ProductPartNumber></p:ProductPartNumber>
<p:Comments></p:Comments>
</p:Asset>
<p:Asset><p:ProductPartNumber></p:ProductPartNumber>
<p:Comments></p:Comments>
</p:Asset>
<p:Asset><p:ProductPartNumber></p:ProductPartNumber>
<p:Comments></p:Comments>
</p:Asset>
<p:Asset><p:ProductPartNumber></p:ProductPartNumber>
<p:Comments></p:Comments>
</p:Asset>
<p:Asset><p:ProductPartNumber></p:ProductPartNumber>
<p:Comments></p:Comments>
</p:Asset>
<p:Asset><p:ProductPartNumber></p:ProductPartNumber>
<p:Comments></p:Comments>
</p:Asset>
</p:ListOfAssets>
</p:ServiceAgreement>
</p:Customer>
</p:Order>
当我尝试转换为xmltojson时,我得到了以下屏幕截图键。 我需要从所有密钥中删除 p:。由于p:即将来临,我无法访问密钥。当我试图检查在线转换其工作,而不是从我的代码中删除。我在节点上工作并使用“xml-to-json-promise”模块
注意:我无法对XML文件进行任何更改。
答案 0 :(得分:0)
xml-to-json-promise
基于xml2js
包(其本身基于sax-js
)。我使用xml2js
并自己宣传,但诀窍是options.tagNameProcessors
。了解他们in the docs
像这样使用:
const prefixMatch = new RegExp(/(?!xmlns)^.*:/)
function stripPrefix(str) {
return str.replace(prefixMatch, '');
}
convert.xmlDataToJSON(xml, {
tagNameProcessors: [stripPrefix]
// other options too
})
这包含在xml2js
包中,可能需要如下:
const {stripPrefix} = require('xml2js/lib/processors')
无论如何,有你去!处理标记名称以重命名密钥(删除任何先前的前缀)。