2013-02-26 47 views
1

我設法裝載表(4×4域,在第一行鏈路)到SimpleXML的,其中一個鏈路上我希望返回鏈路的唯一內HTML(加粗等),但它返回整個元件php simplexml asXML返回incl。外元件

foreach($xml->tbody->children() as $tr){ 
    $row++; 
    for ($i=0;$i<4;$i++) { 
    $data[$row][$i]= $tr->td[$i]->asXML(); 
    if($row==1) 
    { $href[$i] = (string)$tr->td[$i]->a[0]['href']; 
     $titl[$i] = $tr->td[$i]->a[0]->asXML(); // PROBLEMATIC POINT 
    } 
    } 

expected: 'link<b>text</b>' 
returned: '<a href="....">link<b>text</b></a>' /e.g. whole 'a' element/ 

如果我要補充的(字符串)類型設置,我將鬆散的連桿的內格式化,
雖然上述$tr->td[$i]返回元件Td的只有內部內容

+0

剛剛注意到試圖使用(字符串)排版返回只展開文本,所以任何粗體將被省略...繞過strip_tags getplain鏈接文本 – Peminator 2013-02-26 23:13:41

+0

SimpleXML沒有什麼可以返回一個元素開箱即用的XML。那麼你的問題是什麼? – hakre 2013-02-26 23:26:51

+0

那麼爲什麼如果我做'$ tr-> td [$ i]',它會返回例如'hello' /該元素的內容/而不是'​​hello'? – Peminator 2013-02-26 23:32:02

回答

1

希望它能幫助:

$titl[$i] = $tr->td[$i]->a[0]->children()->asXML(); 
+0

ooooh以爲你保存了我的一天,但嘗試之後返回,基於上面的例子只有'文本'而不是'鏈接文本' - 非加粗文本丟失... – Peminator 2013-02-26 23:40:32

+0

哎呀,只是注意到 – apoq 2013-02-26 23:42:43

+0

對於表示零個或多個元素的SimpleXMLElement對象(如'children()'的返回值),該方法通常只對第一個元素起作用(如名爲'asXML()'的方法)。 SimpleXML對文本節點的支持有限(如果有的話)。 – hakre 2013-02-28 09:13:53