【问题标题】:How to parse "random" XML如何解析“随机”XML
【发布时间】:2015-12-26 07:27:25
【问题描述】:

我目前正在开发一个导入 XML 数据的网站,我们从其他公司的 ftp 站点下载这些数据。它是一家在线商店,所以我正在下载订单、商品、商品更新等。

现在产品列表的 XML 文件看起来就像一只猴子把它拍在一起。我的意思是,它不是通用的。某些产品具有其他产品在 xml 文件中没有的字段。

例如,一种产品可能具有以下...

<Value AttributeID="Color">Orange</Value>
<Value AttributeID="Quantity">1000</Value>
<Value AttributeID="Master Model Header">Air Soft Ammunition</Value>
<Value AttributeID="Master Model Body Copy">

虽然下一个产品将...

<Value AttributeID="Caliber">.177</Value>
<Value AttributeID="Quantity per Box">600</Value>
<Value AttributeID="Master Model Header">Pegable Blister Box BBs</Value>
<Value AttributeID="Master Model Body Copy">

显然有一些相似之处,但并非每个产品都相同。这是我的第一个真正的 xml 项目,我不确定如何处理这样的事情。

我了解并非商店中的每个产品都具有相同的属性,但即便如此,产品并未在 xml 文件中分类,因此我无法确定产品“类型”和该产品“类型”具有这些特定的“属性”,即使它们被分类,也有成千上万的产品。我必须为每种类型的产品生成一个模型,这可能意味着数千个模型。

那么我该如何处理这些随机属性呢?你会怎么做呢?

【问题讨论】:

  • 你对这些数据有什么用,按原样导入数据库,适应一些已有的产品,翻译成不同的格式?

标签: php xml


【解决方案1】:

任何 DOM 实现都应该让您遍历树并找出存在哪些元素和属性以及它们具有哪些值。

据此,您可以为可能的属性建立一个可能值列表,并决定您希望它们如何映射到您自己的系统上。

然后确保在导入它们时检查新的未知属性/值并让系统通知您进行手动干预(即额外的地图功能)。

【讨论】:

    猜你喜欢
    • 2011-10-28
    • 2015-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-26
    • 1970-01-01
    • 2011-12-29
    相关资源
    最近更新 更多