Ana içeriğe geç

Değer Ayrıştırıcı

Değer ayrıştırıcılarının sırasını değiştirebilir, birini kaldırabilir veya kendi ayrıştırıcınızı ekleyerek ayrıştırmayı kontrol edebilirsiniz.

Varsayılan olarak, etiket ve öznitelik değerlerini ayrıştırmak için aşağıdaki ayrıştırıcı sırası kullanılır:

["trim","join", "number","boolean","currency"]

Varlık ve tarih ayrıştırıcıları ayarlanmalıdır.

ipucu

Ayrıştırıcı sırasını değiştirirken, hangi tür verilerin hangi sırayla işleneceğini göz önünde bulundurmalısınız.

Varsayılan ayrıştırıcıları geçersiz kılmadığınızda örnek:

const JsObjOutputBuilder = require("fast-xml-parser/src/v5/OutputBuilders/JsObjBuilder");

const xmlData = `<root>
<int> 1234 </int>
<str>4567</str>
<int>str 6789</int>
<bool>true </bool>
</root>`

const parser = new XMLParser({
OutputBuilder: new JsObjOutputBuilder()
});
//xmlData'nızı kendi başınıza okuyun
let result = parser.parse(xmlData, true);

Çıktı:

{
"root": {
"int": [
1234,
"str 6789"
],
"str": 4567,
"bool": true
}
}

Ancak bunu geçersiz kılarsanız, tanımladığınız sıraya göre işlem yapar.

const JsObjOutputBuilder = require("fast-xml-parser/src/v5/OutputBuilders/JsObjBuilder");

const xmlData = `<root>
<int> 1234 </int>
<str>4567</str>
<int>str 6789</int>
<bool>true </bool>
</root>`

const parser = new XMLParser({
OutputBuilder: new JsObjOutputBuilder({
tags: {
valueParsers: ["number"]
}
})
});
//xmlData'nızı kendi başınıza okuyun
let result = parser.parse(xmlData, true);

Çıktı:

{
"root": {
"int": [
1234,
"str 6789"
],
"str": 4567,
"bool": "true"
}
}
bilgi

FXP v5 ayrıca kendi değer ayrıştırıcınızı ayarlamanıza da izin verir. Örneğin;

const outputBuilderOptions = {
tags: {
valueParsers: [
"trim",
"boolean",
new numberParser({
hex: true,
leadingZeros: true,
eNotation: true
}),
"currency"
]
}
}