fast-xml-parser 中文文檔

fast-xml-parser

說(shuō)明

項(xiàng)目中需要解析一次xml文件, 但是從百度中獲取的一些解析方法似乎都有所缺陷, 并沒(méi)辦法很好的解析我需要解析的xml文件, 所以就上github里找到了這個(gè)插件, 速度似乎是該插件的優(yōu)秀之處, 但是我選擇該插件的原因主要是它能解析我所需解析的文件

下邊是一些官方文檔的說(shuō)明, 這個(gè)插件似乎用的人并不多, 所以就記錄一下, 也順便給配置項(xiàng)都翻譯一下, 我項(xiàng)目中如果有使用該配置的話(huà)就會(huì)加上我對(duì)應(yīng)的一些說(shuō)明

在我的項(xiàng)目中, 主要是解析一個(gè)模板文件的xml結(jié)構(gòu), 所以對(duì)應(yīng)的是需要獲取屬性并且解析為JSON格式, 下方是我對(duì)應(yīng)的一個(gè)demo

<script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/fast-xml-parser/3.12.16/parser.min.js"></script>
// 配置
var options = {
  attributeNamePrefix : "@_",
  ignoreAttributes: false,
};
// 使用
$.ajax({
  url: './1.tpl',
  success: res => {
    console.log(res);
    var jsonObj = parser.parse(res, options);
    console.log('json: ', jsonObj)
    document.write(JSON.stringify(jsonObj))
  }
})

使用

var jsonObj = parser.parse(xmlData [,options] );
var options = {
  attributeNamePrefix : "@_",
  attrNodeName: "attr", //default is 'false'
  textNodeName : "#text",
  ignoreAttributes : true,
  ignoreNameSpace : false,
  allowBooleanAttributes : false,
  parseNodeValue : true,
  parseAttributeValue : false,
  trimValues: true,
  cdataTagName: "__cdata", //default is 'false'
  cdataPositionChar: "\\c",
  localeRange: "", //To support non english character in tag/attribute values.
  parseTrueNumberOnly: false,
  attrValueProcessor: a => he.decode(a, {isAttributeValue: true}),//default is a=>a
  tagValueProcessor : a => he.decode(a) //default is a=>a
};

配置(OPTIONS)說(shuō)明

OPTIONS

  • attributeNamePrefix: 提供預(yù)定的字符串作為屬性名稱(chēng)前綴, 比如@_, 這時(shí)假設(shè)解析的屬性為name,那么在解析后的JSON中該屬性將會(huì)解析為@_name
  • attrNodeName: 將所有屬性分組為給定名稱(chēng)的屬性, 取代原本的屬性名稱(chēng), 修改為該名稱(chēng)
  • ignoreAttributes: 忽略解析屬性, 配置該項(xiàng)的時(shí)候不會(huì)解析標(biāo)簽內(nèi)的屬性, 默認(rèn)為true
  • ignoreNameSpace: 從標(biāo)記和屬性名稱(chēng)中移除命名空間字符串
  • allowBooleanAttributes: 標(biāo)記可以具有不帶任何值的屬性
  • parseNodeValue : 將屬性的值解析為float、integer或boolean
  • parseAttributeValue: 將屬性的值解析為float、integer或boolean
  • trimValues: 修剪屬性或節(jié)點(diǎn)的字符串值
  • decodeHTMLchar: This options has been removed from 3.3.4. Instead, use - tagValueProcessor, and attrValueProcessor. See above example.
  • cdataTagName: 如果指定,解析器會(huì)將CDATA解析為嵌套標(biāo)記,而不是將其值添加到父標(biāo)記中
  • cdataPositionChar: 它將有助于將JSON轉(zhuǎn)換回XML,而不會(huì)失去CData的位置。
  • localeRange: 解析器將接受標(biāo)記或?qū)傩悦械姆怯⑽淖址?/li>
  • parseTrueNumberOnly: 如果為真,則像“+123”或“0123”這樣的值不會(huì)被解析為數(shù)字。
  • tagValueProcessor: 轉(zhuǎn)換期間處理標(biāo)記值。如HTML解碼、單詞大寫(xiě)等,僅適用于字符串。
  • attrValueProcessor: 轉(zhuǎn)換期間處理屬性值。如HTML解碼、單詞大寫(xiě)等,僅適用于字符串
  • stopNodes: 不需要解析的標(biāo)記名數(shù)組。相反,它們的值被解析為字符串。

GitHub地址

https://github.com/NaturalIntelligence/fast-xml-parser

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 第3章 基本概念 3.1 語(yǔ)法 3.2 關(guān)鍵字和保留字 3.3 變量 3.4 數(shù)據(jù)類(lèi)型 5種簡(jiǎn)單數(shù)據(jù)類(lèi)型:Unde...
    RickCole閱讀 5,489評(píng)論 0 21
  • XML 指可擴(kuò)展標(biāo)記語(yǔ)言。標(biāo)記指計(jì)算機(jī)所能理解的信息符號(hào),通過(guò)此種標(biāo)記,計(jì)算機(jī)之間可以處理包含各種信息的文章等。 ...
    神齊閱讀 878評(píng)論 0 3
  • http://liuxing.info/2017/06/30/Spring%20AMQP%E4%B8%AD%E6%...
    sherlock_6981閱讀 16,200評(píng)論 2 11
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒(méi)有地址/指針的概念1.2> 泛型1.3> 類(lèi)型嚴(yán)謹(jǐn) 對(duì)...
    cosWriter閱讀 11,621評(píng)論 1 32
  • xml經(jīng)典總結(jié) XML(eXtensible Markup Language)是萬(wàn)維網(wǎng)聯(lián)盟(World Wide ...
    91數(shù)據(jù)閱讀 1,065評(píng)論 0 2

友情鏈接更多精彩內(nèi)容