如何从数据库中获取php中的有效XML表示法



我已经将下面提到的XML存储在一个表(MS-SQL DB)中

<CUSTOMER>
    <CUSTOMERDATA>
    <USERID>12691</USERID>
    <USERCODE>FFRD991</USERCODE>
    <MOBILENO>5645353443</MOBILENO>
    <EMAILID>jhfghfghgf@sdf.fh</EMAILID>
    <FIRSTNAME>ggdg</FIRSTNAME>
    <MIDDLENAME>dfgdfgdf</MIDDLENAME>
    <LASTNAME>gdfgdf</LASTNAME>   
    <ADDRESS></ADDRESS>
    <CITY></CITY>
    <PINCODE></PINCODE>
    <STATENAME></STATENAME>
    <SOURCE>Others</SOURCE>
    <CREATEDATE>2015-12-01</CREATEDATE>   
    <STATUS></STATUS>
    </CUSTOMERDATA>
</CUSTOMER>

现在我想使用以下代码通过php获取此记录:

$query = "Select xml_rec from tbl_node where  UserId = 12691";
$result = sqlsrv_query($this->db->conn_id, $query);
$row = sqlsrv_fetch_object($result);
//// OR
$row = sqlsrv_fetch_array($result , SQLSRV_FETCH_ASSOC);        
echo $row['xml_rec'];

我得到了以下错误的XML。请注意空白标签

<CUSTOMER>
    <CUSTOMERDATA>
    <USERID>12691</USERID>
    <USERCODE>FFRD991</USERCODE>
    <MOBILENO>5645353443</MOBILENO>
    <EMAILID>jhfghfghgf@sdf.fh</EMAILID>
    <FIRSTNAME>ggdg</FIRSTNAME>
    <MIDDLENAME>dfgdfgdf</MIDDLENAME>
    <LASTNAME>gdfgdf</LASTNAME>   
    <ADDRESS/>
    <CITY/>
    <PINCODE/>
    <STATENAME/>
    <SOURCE>Others</SOURCE>
    <CREATEDATE>2015-12-01</CREATEDATE>
    <STATUS/>
    </CUSTOMERDATA>
</CUSTOMER>

如何修复此问题以显示正确的XML?谢谢你抽出宝贵的时间

您在这里并没有真正使用任何xml处理函数,只需检索一个字符串并将其显示即可。问题最可能的原因是,当您将这些数据存储在数据库中时,会处理空标签

 <tag></tag>

形成

 <tag />

形式。

您可以通过直接连接到数据库(不使用PHP)并手动运行查询来检查这一点。

无论如何,正如lad2025所指出的,写空标签的两种方法是等效的,所以这对你的应用程序来说并不重要。

最新更新