You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在WP All Import中用XPath映射XML产品属性及处理多值问题

产品XML导入的属性映射与多值拆分问题

我需要将XML文件中的产品导入到站点,核心需求包括:

  • 将XML中名称不一致、顺序混乱的属性映射为站点自定义属性(例如站点的「材质」对应XML中的「Υλικό Κατασκευής」)
  • 将逗号分隔的属性多值拆分为独立对象

现有XML包含数千个多类别产品,属性数量不一,且部分属性名称与站点不匹配。我尝试了两种方法,但都存在问题:

方法1:XPath表达式失效

使用的XPath表达式:

{(attr/text[../name/text()="Υλικό Κατασκευής"]/text())}

问题:返回空值,无法获取目标属性内容。

方法2:自定义PHP函数的多值冲突问题

自定义函数代码:

function my_get_attribute_value( $attr, $name, $value ) {
    if ( empty( $name ) || empty( $value ) ) return;
    
    $names = explode( ", ", $name[0] );
    $values = explode( ", ", $value[0] );
    
    foreach ( $names as $key => $v ) {
        if ( $v == $attr && array_key_exists( $key, $values ) ) {
            return $values[ $key ];
        }
    }
}

调用方式:

[my_get_attribute_value("Χρώμα Ανάρτησης",array({attributes/attr/name}),array({attributes/attr/text}))]

问题:当属性值为逗号分隔的多值(如「Γυαλί, Κρύσταλλα, Μέταλλο」)时,会打乱后续属性的映射结果——当前属性仅显示第一个值,下一个属性错误显示该多值的第二个值,导致映射完全混乱。


示例XML代码

<product>
<id>314</id>
<name>
<![CDATA[
InLight Κρεμαστό φωτιστικό από διάφανο γυαλί και κρύσταλλα 3XE14 D:55cm (5314-3-CLEAR)
]]>
</name>
<image>
<![CDATA[
https://www.moraitis.com/image/2019-2020/5314-3 DIAFANO.jpg
]]>
</image>
<additional_image>
<![CDATA[
https://www.moraitis.com/image/2019-2020/5314-3 GIALI SKITSO.jpg
]]>
</additional_image>
<code>5314-3-CLEAR</code>
<ean>314</ean>
<mpn>314</mpn>
<isbn/>
<rec_fee>0.3</rec_fee>
<price_without_vat>103.95</price_without_vat>
<price_with_vat>128.90</price_with_vat>
<manufacturer>
<![CDATA[ InLight ]]>
</manufacturer>
<url>
<![CDATA[
https://www.moraitis.com/Κρεμαστό φωτιστικό από διάφανο γυαλί και κρύσταλλα 3XE14 D:55cm (5314-3-CLEAR)
]]>
</url>
<url_non_seo>
<![CDATA[ https://www.moraitis.com/&path=209&product_id=314 ]]>
</url_non_seo>
<category>
<![CDATA[ Φωτιστικά ]]>
</category>
<category_id>
<![CDATA[ 209 ]]>
</category_id>
<category_id_path>
<![CDATA[ 209 ]]>
</category_id_path>
<cat_tree>
<cat>
<![CDATA[ Φωτιστικά ]]>
</cat>
<cat>
<![CDATA[ Φωτιστικά Οροφής ]]>
</cat>
<cat>
<![CDATA[ Κρεμαστά Φωτιστικά ]]>
</cat>
</cat_tree>
<weight>3.50</weight>
<weight_if_in_grams>4</weight_if_in_grams>
<weight_if_in_kg>3.50 kg</weight_if_in_kg>
<dimensions>
<length>42.00</length>
<width>36.00</width>
<height>23.00</height>
</dimensions>
<instock>Y</instock>
<availability>Παράδοση σε 4 - 10 ημέρες</availability>
<size/>
<shipping/>
<description>
<![CDATA[
Πρόκειται για ένα διάφανο γυάλινο κρεμαστό φωτιστικό με τρεις λαμπτήρες. Τόσο τα διάφανα κρύσταλλα που κρέμονται όσο και οι χρώμιο μεταλλικές λεπτομέρειες του προσδίδουν μια επιπλέον λάμψη. Η χρώμιο μεταλλική ανάρτηση είναι ρυθμιζόμενη και προσαρμόζεται στον κάθε χώρο.&nbsp;
]]>
</description>
<attributes>
<attr>
<name>
<![CDATA[ Dimmable ]]>
</name>
<text>
<![CDATA[ Ναι ]]>
</text>
</attr>
<attr>
<name>
<![CDATA[ Αριθμός Λαμπτήρων ]]>
</name>
<text>
<![CDATA[ 3 ]]>
</text>
</attr>
<attr>
<name>
Βαθμός Προστασίας
</name>
<text>
IP20
</text>
</attr>
<attr>
<name>
<![CDATA[ Λαμπτήρας ]]>
</name>
<text>
<![CDATA[ Ε14 ]]>
</text>
</attr>
<attr>
<name>
<![CDATA[ Με Λαμπτήρα ]]>
</name>
<text>
<![CDATA[ Όχι ]]>
</text>
</attr>
<attr>
<name>
<![CDATA[ Τοποθέτηση ]]>
</name>
<text>
<![CDATA[ Οροφή ]]>
</text>
</attr>
<attr>
<name>
<![CDATA[ Υλικό Κατασκευής ]]>
</name>
<text>
<![CDATA[ Γυαλί, Κρύσταλλα, Μέταλλο ]]>
</text>
</attr>
<attr>
<name>
<![CDATA[ Χρώμα Ανάρτησης ]]>
</name>
<text>
<![CDATA[ Χρώμιο ]]>
</text>
</attr>
<attr>
<name>
<![CDATA[ Χρώμα Γυαλιού ]]>
</name>
<text>
<![CDATA[ Διάφανο ]]>
</text>
</attr>
<attr>
<name>
<![CDATA[ Χρώμα Κρυστάλλου ]]>
</name>
<text>
<![CDATA[ Διάφανο ]]>
</text>
</attr>
</attributes>
</product>

内容的提问来源于stack exchange,提问作者Yiannis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 18:45:39