PHP-解析xml文件-交付的文件包含带有“-”的属性,当我运行php

问题描述

我需要解析从第三方收到的xml文件,以便将其一部分上传到mysql db中。 使用eclipse,php 7.3和mysql 8.0以及版本为1.0的xml文件。

以下是xml文件的示例:

<?xml version="1.0" encoding="UTF-8"?>
<levels>
    <level id="1" label-ref="Lab01">
    <sublevels>
        <sublevel id="0102020" category-ref="2" ></sublevel>
        <sublevel id="0102022" category-ref="3" ></sublevel>
    </sublevels>
    </level>
</levels>

问题在于label-refcategory-ref都包含连字符。在我的脚本中使用连字号时,会产生以下警告(未来错误):

警告:使用未定义的常量ref-假定为“ ref”

我注意到它不是ref字,而是连字符-,而且我不知道如何绕过它。 xml不在我的控制之下,我必须按原样使用它。

我的php代码:

$xmlOp //contains the above mentioned xml
foreach ($xmlOp->levels->level as $lev) {
$lev_id = $lev->attributes()->id;
$lev_label = $lev->attributes()->label-ref;
}

非常感谢您的帮助:) 克里斯

更新28AUG:将tks更新为Using XML node names with hyphens in PHP,只需添加{}就可以了……在我们知道解决方案之后,我们总是变得更加聪明……;)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...