1

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

1 回答 1

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": [
            ""
        ]
    }
],

这有点像你想要的!

于 2020-07-14T14:53:18.597 回答