如何使用 PHP 读取字符串中的 XML 子节点值?
How to read XML Child Node Value in a String using PHP?
我有一个字符串,它从其他服务器动态获取它的值。字符串的值为
$xmloutput = '<response uri="/crm/private/xml/Leads/getRecordById">
<result>
<Leads>
<row no="1">
<FL val="LEADID">131</FL>
<FL val="SMOWNERID">20001</FL>
<FL val="Lead Owner"><![CDATA[Aaron]]></FL>
<FL val="First Name"><![CDATA[Carol]]></FL>
<FL val="Last Name"><![CDATA[Custer]]></FL>
<FL val="Email"><![CDATA[good51@gmail.com]]></FL>
</row>
<row no="2">
<FL val="LEADID">2070</FL>
<FL val="SMOWNERID">20001</FL>
<FL val="Lead Owner"><![CDATA[Aaron]]></FL>
<FL val="Last Name"><![CDATA[Florence, SC]]></FL>
</row>
</Leads>
</result>
</response>
我的问题是,一般我们使用$xml = simplexml_load_file("test1.xml");
来加载XML个文件,但是在我的要求中它是一个字符串,我如何读取这个字符串值并提取子节点及其价值?示例:
<FL val="LEADID">131</FL> // its key is LEADID and value is 131
<FL val="First Name"><![CDATA[Carol]]></FL> // its key is First Name and value is Carol
有没有办法把它放到数组中?这样我就可以很容易地打印出它的节点值了?
使用 simplexml_load_string()
从字符串中读取 xml。然后循环遍历row
个元素,在循环中,循环遍历FL
个元素,然后得到文本内容和元素的属性。
$xml = simplexml_load_string($string);
foreach ($xml->Leads->row as $row) {
foreach ($row->FL as $fl) {
echo "{$fl} => {$fl['val']}<br>";
}
}
我有一个字符串,它从其他服务器动态获取它的值。字符串的值为
$xmloutput = '<response uri="/crm/private/xml/Leads/getRecordById">
<result>
<Leads>
<row no="1">
<FL val="LEADID">131</FL>
<FL val="SMOWNERID">20001</FL>
<FL val="Lead Owner"><![CDATA[Aaron]]></FL>
<FL val="First Name"><![CDATA[Carol]]></FL>
<FL val="Last Name"><![CDATA[Custer]]></FL>
<FL val="Email"><![CDATA[good51@gmail.com]]></FL>
</row>
<row no="2">
<FL val="LEADID">2070</FL>
<FL val="SMOWNERID">20001</FL>
<FL val="Lead Owner"><![CDATA[Aaron]]></FL>
<FL val="Last Name"><![CDATA[Florence, SC]]></FL>
</row>
</Leads>
</result>
</response>
我的问题是,一般我们使用$xml = simplexml_load_file("test1.xml");
来加载XML个文件,但是在我的要求中它是一个字符串,我如何读取这个字符串值并提取子节点及其价值?示例:
<FL val="LEADID">131</FL> // its key is LEADID and value is 131
<FL val="First Name"><![CDATA[Carol]]></FL> // its key is First Name and value is Carol
有没有办法把它放到数组中?这样我就可以很容易地打印出它的节点值了?
使用 simplexml_load_string()
从字符串中读取 xml。然后循环遍历row
个元素,在循环中,循环遍历FL
个元素,然后得到文本内容和元素的属性。
$xml = simplexml_load_string($string);
foreach ($xml->Leads->row as $row) {
foreach ($row->FL as $fl) {
echo "{$fl} => {$fl['val']}<br>";
}
}