2013-02-26 25 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