Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php simplexml asXML返回,包括外部元素_Php_Xml_Simplexml - Fatal编程技术网

php simplexml asXML返回,包括外部元素

php simplexml asXML返回,包括外部元素,php,xml,simplexml,Php,Xml,Simplexml,我设法将一个表(4x4字段,第一行中的链接)加载到simplexml,在链接上我希望只返回链接的内部html(粗体等),但它返回整个元素 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] = (

我设法将一个表(4x4字段,第一行中的链接)加载到simplexml,在链接上我希望只返回链接的内部html(粗体等),但它返回整个元素

  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/
foreach($xml->tbody->children()作为$tr){
$row++;
对于($i=0;$itd[$i]->asXML();
如果($row==1)
{$href[$i]=(字符串)$tr->td[$i]->a[0]['href'];
$titl[$i]=$tr->td[$i]->a[0]->asXML();//问题点
}
}  
应为:“链接文本”
返回:“”/例如,整个“a”元素/
如果我要添加(字符串)类型设置,我会松开链接的内部格式化,
虽然上面的
$tr->td[$i]
只返回元素td的内部内容,但希望它有帮助:

$titl[$i] = $tr->td[$i]->a[0]->children()->asXML();
希望有帮助:

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

刚刚注意到尝试使用(字符串)排版只返回未包装的文本,因此任何粗体都将被忽略…通过strip_标记绕过以获取linkSimpleXML的纯文本无法返回框外元素的内部XML。那么您的问题是什么?那么为什么我要执行
$tr->td[$I]
它返回例如
hello
/该元素的内部内容/而不是
hello
?我希望只使用内置的php类来实现,因此如果可能的话,不使用外部类解决方案。我认为这是我使用DOM而不是SimpleXML的一种情况,正如下面的回答:原因是需要迭代在文本节点和子元素上,SimpleXML将其简化到您无法触及的程度…刚刚注意到尝试使用(字符串)排版只返回未包装的文本,因此任何粗体都将被忽略…通过strip_标记绕过以获取linkSimpleXML的纯文本,没有任何东西可以返回框外元素的内部XML。那么你的问题是什么?那么为什么我要做
$tr->td[$I]
它返回例如
hello
/该元素的内部内容/而不是
hello
?我希望只使用内置的php类来实现,因此如果可能的话,不使用外部类解决方案。我认为这是我使用DOM而不是SimpleXML的一种情况,正如下面的回答:原因是需要迭代在文本节点和子元素上,SimpleXML将其简化到您无法触及的程度…ooooh认为您保存了我的一天,但在尝试返回后,根据上面的示例,只有
文本
,而不是
链接文本
-缺少非粗体文本…oops,刚刚注意到在SimpleXMLElement对象上表示零个或多个元素nts(如
children()
)的返回值),该方法通常只对第一个元素有效(如名为
asXML()
)的方法)。SimpleXML的支持有限(如果有人这么说的话)对于textnodes.ooh,您认为您保存了我的一天,但在尝试返回后,根据上面的示例,仅返回
文本,而不是
链接文本
-缺少非粗体文本…oops,注意到在表示零个或多个元素的SimpleXMLElement对象上(如
children()
的返回值),该方法通常只适用于第一个元素(如名为
asXML()
)的方法)。SimpleXML对textnodes的支持有限(如果可以这么说的话)。