xml2 js valueProcessor удаляет \ t и \ n - PullRequest
1 голос
/ 14 июля 2020

У меня проблема с анализом файла XML. Я хочу удалить строки с такими символами, как \ t \ n.

XML Файл: http://ftp.thinkimmo.com/home/immoanzeigen24/immo.xml

{
        trim: true,
        normalize: true,
        attrValueProcessors: [cleanValue, name => name],
        valueProcessors: [cleanValue, name => name]
      }

cleanValue:

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",
}

1 Ответ

1 голос
/ 14 июля 2020

Это сложный!

Я бы посоветовал следовать простой стратегии и предварительно обработать 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": [
            ""
        ]
    }
],

Это немного больше похоже на то, что вы хотите!

...