【问题标题】:xml2js valueProcessor removing \t and \nxml2js valueProcessor 删除 \t 和 \n
【发布时间】:2020-07-14 13:27:38
【问题描述】:

我在解析 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",
}

【问题讨论】:

    标签: javascript node.js xml xml-parsing xml2js


    【解决方案1】:

    这很难!

    我建议遵循一个简单的策略并在解析 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": [
                ""
            ]
        }
    ],
    

    这更像你想要的!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-25
      • 2019-12-30
      • 2017-01-06
      • 2020-05-28
      • 2011-03-01
      • 2019-10-24
      • 1970-01-01
      • 2012-06-04
      相关资源
      最近更新 更多