0
<?php

$sql    = "SELECT xxxx FROM xxxx";
$result = mysql_query($sql, $con);
if ($result) {
    while ($row = mysql_fetch_array($result)) {
        $jobtitle = $row["xxxx"];
        echo $jobtitle . "<br/>"; //output should be in xml format as given below
    }

}

在上面的示例代码中,我使用echo.

但我想要 XML 格式的输出;那就是我应该得到类似于:

<all>
   <jobtitle>job1</jobtitle>
   <jobtitle>job2</jobtitle>
</all>

目前我得到的输出为:

job1
job2
4

4 回答 4

0

它不会自动插入您想要的 xml 标签,您需要在作业之前和之后回显它们,以下就是这样做的:

    echo header('Content-Type: application/xml');
    $sql = "select jobtitle from jobslist";
    $result = mysql_query($sql,$con);
     if($result)
     {
       echo "<all>\n";
       while($row=mysql_fetch_array($result))
       {
         $jobtitle = $row["jobtitle"];
     echo "<jobtitle>$jobtitle</jobtitle>\n"; //output should be in xml format as given below
       }
       echo "</all>\n";
     }

特别是回显 $jobtitle 的行,只需要修改(以及开始/结束 <all> 和 </all>

echo "<jobtitle>$jobtitle</jobtitle>\n";
于 2012-12-29T10:15:07.700 回答
0

您必须添加 xml 标记来包装数据库结果,并为 xml 发送正确的标头。我还添加了这样您在解析输出时不必担心 xml 错误

    if($result){
        header ("Content-Type:text/xml"); 
        $xmlstring='<?xml version="1.0"?>\n';
        $xmlstring='<all>\n';
        while($row=mysql_fetch_array($result)){
              $xmlstring.='<jobtitle><![CDATA['. $row["jobtitle"].']]></jobtitle>\n';

          }
       $xmlstring.='</all>';

       echo  $xmlstring;
       }
于 2012-12-29T10:16:14.813 回答
0

问题似乎是一个简单的事实,即您没有将XML标签附加到输出中。使其按预期工作的简单方法如下:

<?php header('Content-Type: application/xml'); ?>
<?php
    $sql = "select jobtitle from jobslist";
    $result = mysql_query($sql,$con);
    if($result) {
        echo '<?xml version="1.0"?>', "\n";
        echo '<all>', "\n";
        while( $row = mysql_fetch_array($result) ) {
            echo '    <jobtitle>' , $row["jobtitle"] , '</jobtitle>' , "\n";
        }
        echo '</all>', "\n";
    }
?>

另外,这是我在 Codepad.org 上进行的测试,它显示了更改的作用。

于 2012-12-29T10:17:08.607 回答
0

SimpleXMLElement对于您非常简单的 XML 输出,您可以在Docs的帮助下轻松完成:

$all = new SimpleXMLElement('<all />');

$sql    = "SELECT xxxx FROM xxxx";
$result = mysql_query($sql, $con);
while ($result && $row = mysql_fetch_array($result)) {
    $all->addChild('jobtitle', $row["xxxx"]);
}

echo $all->asXML();

示例输出(美化):

<?xml version="1.0"?>
<all>
    <jobtitle>job1</jobtitle>
    <jobtitle>job2</jobtitle>
</all>

我还建议您查看 PHP 手册,该手册有更多资源来提供如何创建、操作和输出 XML:Basic SimpleXML usage

于 2012-12-30T18:32:57.400 回答