簡體   English   中英

如何使用PHP讀取字符串中的XML子節點值?

[英]How to read XML Child Node Value in a String using PHP?

我有一個String,它可以從其他服務器動態獲取其值。 字符串的值為

$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

有沒有辦法將其放入數組? 以便我輕松打印出其節點值?

使用用於從字符串讀取xml的simplexml_load_string() 然后循環遍歷row元素,並循環遍歷FL元素,然后獲取文本內容和元素屬性。

$xml = simplexml_load_string($string); 
foreach ($xml->Leads->row as $row) {
    foreach ($row->FL as $fl) {
        echo "{$fl} => {$fl['val']}<br>";
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM