RewriteRule ^/?mypage/!(test)$ mypage.php?arg=$1 [L,NC]
使用simplexml / xpath我想返回' NAME'的属性文本。和'代码'对于ID 001,有很多行,因此结果将根据ID号
而不同修改 访问CDATA不是问题所在,它返回名称和代码的值,其中id = 001等
继承人我试图得到的名字
<RESULTS>
<ROW>
<COLUMN NAME="ID"><![CDATA[001]]></COLUMN>
<COLUMN NAME="NAME"><![CDATA[ORG001]]></COLUMN>
<COLUMN NAME="CODE"><![CDATA[1234]]></COLUMN>
</ROW>
</RESULTS>
由于
答案 0 :(得分:0)
不确定你真正尝试做什么。据我了解......
$xml = simplexml_load_string($x); // assuming XML in $x
$hit = (string)$xml->xpath("/RESULTS/ROW[COLUMN/@NAME='ID' and COLUMN/text() = '001']/COLUMN[@NAME='NAME']")[0];
以上代码一步一步:
(string)
将强制结果为字符串,而不是对象<ROW>
,其子<COLUMN>
的属性为NAME='ID'
,值为001
<ROW>
开始,选择属性为<COLUMN>
NAME='NAME'
xpath()
返回SimpleXml
元素数组,[0]
我们选择第一个条目。看到它有效:https://eval.in/503464
修改强>:
重新阅读问题。要获得所需的结果,请选择<ROW>
,然后迭代<COLUMN>
:
$hit = $xml->xpath("/RESULTS/ROW[COLUMN/@NAME='ID' and COLUMN/text() = '001']")[0];
foreach ($hit as $column)
echo $column['NAME'] . ": " . $column . PHP_EOL;
输出:
ID: 001
NAME: ORG001
CODE: 1234