Yapılandırma
bilgi
Bu belgede iki set yapılandırma vardır:
- Çıktı Oluşturucuya özgü seçenekler
- Ayrıştırıcıya özgü seçenekler
Örnek.
Ayrıştırıcı yapılandırması
{
removeNSPrefix: false, // tag adı veya özellik adından NS'yi kaldır
//ignoreRootElement : false,
stopNodes: [], // iç içe etiketler hata olsa bile ayrıştırılmayacak
// isArray: () => false, // Kullanıcı bunu ayarlayacak
htmlEntities: false,
// skipEmptyListItem: false
tags:{
unpaired: [],
nameFor:{
cdata: false,
comment: false,
text: '#text'
},
separateTextProperty: false,
},
attributes:{
ignore: false,
booleanType: true,
entities: true,
},
// select: ["img[src]"],
// stop: ["anim", "[ads]"]
only: [], // diğer etiketler atlanacak. Düz bir dizi oluşturacak
hierarchy: false, // belirli bir etiketin ayrıştırılmasını sağlamak için kullanılacak
skip: [], // ayrıştırma sonucundan atlanacak. on('skip') tetiklenecek
select: [], // on('select', tag => tag ) eşleşirse çağrılacak
stop: [], // verilen tagPath ayrıştırılmayacak. innerXML string değeri olarak ayarlanacak
OutputBuilder: new JsArrBuilder(),
}
Not: Henüz desteklenmeyen bazı özellikler mevcut ama gelecekteki kullanım için belirtilmiştir.
Çıktı Oluşturucuya özgü seçenekler
{
preserveOrder: false, // 'join' değeri ayarlanırsa, etiket değerleri için ayrıştırıcı kullanılacak
nameFor:{
text: "#text",
comment: "",
cdata: "",
},
// onTagClose: () => {},
// onAttribute: () => {},
piTag: false,
declaration: false, //"?xml"
tags: {
valueParsers: [
// "trim",
// "boolean",
// "number",
// "currency",
// "date",
]
},
attributes:{
prefix: "@_",
suffix: "",
groupBy: "",
valueParsers: [
// "trim",
// "boolean",
// "number",
// "currency",
// "date",
]
}
}
Varsayılan olarak JsObjOutputBuilder
çıktı oluşturucu varsayılan seçeneklerle kullanılır.
ipucu
Aşağıdaki örnekte JsObjOutputBuilder
kullanımını görebilirsiniz.
Örnek
const XMLParser = require("fast-xml-parse/src/v5/XMLParser");
const JsObjOutputBuilder = require("fast-xml-parse/src/v5/OutputBuilders/JsObjBuilder");
const JsArrBuilder = require("fast-xml-parse/src/v5/OutputBuilders/JsArrBuilder");
const JsMinArrBuilder = require("fast-xml-parse/src/v5/OutputBuilders/JsMinArrBuilder");
const xmlData = fs.readFileSync("sample.xml").toString();
const outputBuilderOptions = {
onAttribute: (name, value, tagName) => {
console.log(name, value, tagName)
}
};
const parserOptions = {
attributes: {
ignore: false,
booleanType:true
},
OutputBuilder: new JsObjOutputBuilder(outputBuilderOptions)
};
const parser = new XMLParser(parserOptions);
let result = parser.parse(xmlData);
console.log(JSON.stringify(result,null,4));