php - 读取 XML 数据并更新变量数量
问题描述
正如标题所说,我想从 XML 文件更新 woocommerce 产品变体数量,使用 SKU 作为公分母。
以下是我到目前为止的代码:
<?php
$xmldata = simplexml_load_file("URL_REMOVED") or die("Failed to load");
$dproduct_id = null;
$dsku = null;
$dqty = null;
foreach($xmldata->children() as $prod) {
$dsku = $prod->sku;
$dqty = $prod->qty;
$idfromsku = wc_get_product_id_by_sku( $dsku );
echo $idfromsku;
}
以下是 XML 数据的示例:
<products>
<product>
<sku>D0001B</sku>
<qty>100</qty>
</product>
</products>
我的逻辑是“对于每个产品,将 $dsku 设置为 sku 的值,并将 $dqty 设置为 qty 的值”,确实如此,但我正在努力从 sku 获取产品 ID。
PHP 不是我最擅长的语言,所以这里的任何帮助将不胜感激。
干杯 D
解决方案
一个常见的问题是,尽管您的数据看起来好像是一个字符串。当你做echo
一些事情时——这会自动将输出转换为字符串,并可能调用__toString()
类中的方法,所以它看起来还不错。在您的示例中
$dsku = $prod->sku;
如果您转储值 ( var_dump()
),您应该会发现它是 SimpleXMLElement 的一个实例。因此,如果您想将此值传递给一个函数,就像wc_get_product_id_by_sku()
您需要强制它成为一个字符串...
$idfromsku = wc_get_product_id_by_sku( (string)$dsku );
推荐阅读
- r - 按特定列对数据框进行排序
- webview - 如何在我的 webview 上实现通知
- snowflake-cloud-data-platform - 通过 Okta 的雪花本机 SSO -“无法连接到 okta。错误代码 = 401”
- flutter - 如何根据颤动中的方向变化改变状态栏和导航栏的颜色
- c# - C# 基于逻辑从 Excel 列中获取值
- java - 在 log4j2.properties 中,无法从 tomcat context.xml 中读取属性
- python - 使用整数键访问 HDF5 键值存储
- javascript - 在Android的WebView中调用Javascript函数
- javascript - 当用户在窗口时
- sql - 更新并插入 MERGE 查询