xml2js valueProcessor 删除 \t 和 \n
xml2js valueProcessor removing \t and \n
我在解析 XML 文件时遇到问题。
我想删除带有 \t\n.
等字符的字符串
XML 文件:http://ftp.thinkimmo.com/home/immoanzeigen24/immo.xml
{
trim: true,
normalize: true,
attrValueProcessors: [cleanValue, name => name],
valueProcessors: [cleanValue, name => name]
}
清洁值:
const cleanValue = value => {
return value.toString().trim().replace("\t","atest");
};
我试着用我在网上找到的很多正则表达式来清理它——但值总是像下面这样:
"verwaltung_objekt": {
"objektadresse_freigeben": "0",
"verfuegbar_ab": "nachaasjkdhkjshadjkashdAbsprache",
"bisdatum": "2016-01-15",
"min_mietdauer": "\n\t\t\t\t",
"max_mietdauer": "\n\t\t\t\t",
}
这很难!
我建议遵循一个简单的策略并在解析之前预处理 xml 数据。
这至少应该可以解决您的问题。
如果你只是做类似的事情:
function trimXml(xml) {
return xml.replace(/>\s+</g, "><");
}
xml = trimXml(xml);
然后解析修剪后的xml数据。您现在应该看到输出如下所示:
"verwaltung_objekt": [
{
"objektadresse_freigeben": [
"1"
],
"abdatum": [
"2017-03-01"
],
"min_mietdauer": [
""
],
"max_mietdauer": [
""
]
}
],
哪个更像你想要的!
我在解析 XML 文件时遇到问题。 我想删除带有 \t\n.
等字符的字符串XML 文件:http://ftp.thinkimmo.com/home/immoanzeigen24/immo.xml
{
trim: true,
normalize: true,
attrValueProcessors: [cleanValue, name => name],
valueProcessors: [cleanValue, name => name]
}
清洁值:
const cleanValue = value => {
return value.toString().trim().replace("\t","atest");
};
我试着用我在网上找到的很多正则表达式来清理它——但值总是像下面这样:
"verwaltung_objekt": {
"objektadresse_freigeben": "0",
"verfuegbar_ab": "nachaasjkdhkjshadjkashdAbsprache",
"bisdatum": "2016-01-15",
"min_mietdauer": "\n\t\t\t\t",
"max_mietdauer": "\n\t\t\t\t",
}
这很难!
我建议遵循一个简单的策略并在解析之前预处理 xml 数据。
这至少应该可以解决您的问题。
如果你只是做类似的事情:
function trimXml(xml) {
return xml.replace(/>\s+</g, "><");
}
xml = trimXml(xml);
然后解析修剪后的xml数据。您现在应该看到输出如下所示:
"verwaltung_objekt": [
{
"objektadresse_freigeben": [
"1"
],
"abdatum": [
"2017-03-01"
],
"min_mietdauer": [
""
],
"max_mietdauer": [
""
]
}
],
哪个更像你想要的!