Xml输出不是我想要的地方

时间:2013-07-16 09:24:36

标签: php xml-parsing simplexml

我有一个脚本,用于检查站点的状态并在xml文档中写入结果。 Xml是这样的:

<?xml version="1.0" encoding="UTF-8"?>
 <xml>
  <sites>
   <site1>result of site1</site1>
   <site2>result of site2</site2>
   ...
  </sites>
 </xml>

然后我有一个函数让我用wordpress短代码获取每个站点的xml内容,如下所示:

<?php
function CheckRemoteService($atts) {
 extract(shortcode_atts(array(
  'name' => 'txt',
 ), $atts));

$xml = simplexml_load_file('my.xml');
echo $xml->sites->$name;

}
add_shortcode('checkmyurl','CheckRemoteService');
?>

短代码为我提供了正确的输出,但所有结果都放在顶部的同一行,就像在那里被阻止一样。我想将这些结果插入包含其他数据的表中。这是xml限制还是我犯了一些错误? 感谢。

1 个答案:

答案 0 :(得分:0)

你的功能不应该echo任何东西,return它 - 代码在Wordpress准备页面时运行,而不是在输出到浏览器时运行,因此任何直接输出都将只需在“真实”输出开始之前显示在页面顶部。

顺便提一下,一旦你没有使用echo,最好将SimpleXML对象显式地转换为字符串,以避免任何意外行为:

return (string)$xml->sites->$name;