php抓取属性字符串对象模型

php抓取属性字符串对象模型,php,web-scraping,Php,Web Scraping,在网站中,以下是html: <li class="foo" data-link="{"ke1":"val1","key2":"val2","key3":"val3"}" >text</li> 文本 我应该恢复“数据链接”(“val3”)和“文本”的“键3”的值 我使用以下代码(php): $html=file\u get\u contents('http://siteweb.com'); $foo=新的DOMDocument(); libxml\u使用\u内部错误(T

在网站中,以下是html:

<li class="foo" data-link="{"ke1":"val1","key2":"val2","key3":"val3"}" >text</li>
  • 文本
  • 我应该恢复“数据链接”(“val3”)和“文本”的“键3”的值

    我使用以下代码(php):

    $html=file\u get\u contents('http://siteweb.com');
    $foo=新的DOMDocument();
    libxml\u使用\u内部错误(TRUE);
    如果(!empty($html)){
    $foo->loadHTML($html);
    libxml_clear_errors();
    $foo_xpath=新的DOMXPath($foo);
    $foo_row=$foo_xpath->query('//li[@data link]');
    如果($foo_行->长度>0){
    foreach($foo_行作为$row){
    $value=$row->getAttribute('data-slink');
    echo$value;//{“ke1”:“val1”,“key2”:“val2”,“key3”:“val3”}
    echo$row->nodeValue.“
    ”;//文本 } };

    使用什么代码来执行此操作?

    似乎可以通过
    json\u decode
    解析

    ``` $link=json_decode($value,true); echo$link['key3']; ```

    $html = file_get_contents('http://siteweb.com');
    $foo = new DOMDocument();
    
    libxml_use_internal_errors(TRUE); 
    
    if(!empty($html)){ 
    
        $foo->loadHTML($html);
        libxml_clear_errors(); 
    
        $foo_xpath = new DOMXPath($foo);
    
        $foo_row = $foo_xpath->query('//li[@data-link]');
    
        if($foo_row->length > 0){
            foreach($foo_row as $row){
                $value = $row->getAttribute('data-slink');
                echo $value; //{"ke1":"val1","key2":"val2","key3":"val3"}
    
                echo $row->nodeValue . "<br/>"; //text
            }
        };