Ana içeriğe geç

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));