我有mysql表(例如TestSuite),在TestSuiteDeFinition列中保存xml内容(尽管是长文本),
<test_suite id="368">
<name>TestSuite1</name>
<description>TestSuite</description>
<test_case id="141" version="" />
<test_case id="142" version="" />
<test_case id="143" version="" />
<test_case id="144" version="" />
</test_suite>
现在,我想检索属性的值(在这种情况下为“ id”).我知道如何在MS sql中执行此操作,例如:
从TestSuite的位置选择TestSuiteDeFinition.query(‘data(/ test_suite / test_case / @ id)’)作为名称TestSuiteId =’368′
但是无法在MysqL中弄清楚.
注意:尝试使用MysqL函数ExtractValue(),但在检索元素属性上没有成功.
谢谢
解决方法:
$rows = $MysqLi->query(<<<EOQ
SELECT ExtractValue(TestSuiteDeFinition,'//test_case/@id') as name
FROM TestSuite
WHERE TestCaseId=368
EOQ
) or die($MysqLi->error);
print_r($rows->fetch_all());
输出:
Array
(
[0] => Array
(
[0] => 141 142 143 144
)
)