我使用以下函数将PaymentAmount从我的数据库带入XML。
function GetPaymentTotal($orderID) {
Global $cnx;
$ptotal = null;
$sql = "SELECT value FROM orders_total WHERE class='ot_total' AND orders_id = '" . $orderID . "'";
$result = mysql_query($sql, $cnx) or die('Couldn\'t get order ot_shipping class from ' . SHOPPING_CART . ' orders_total table: ' . mysql_error());
if (mysql_num_rows($result) > 0)
{
$ptotal = mysql_fetch_assoc($result);
}
return $ptotal;
}
使用此输出:
$a_order['PaymentAmount'] = GetPaymentTotal($order->OrderNumber);
它正在运作,但出于某种原因,它带来了“价值”。标记我价值的任何一面......我不想要。以下是分钟的看法:
<PaymentAmount>
<value>74.8501</value>
</PaymentAmount>
以下是我希望它的样子。
<PaymentAmount>74.8501</PaymentAmount>
非常感谢任何帮助。
答案 0 :(得分:0)
从您提供的代码中,您不喜欢的XML:
<PaymentAmount>
<value>74.8501</value>
</PaymentAmount>
从数据库中获取。因此,您的问题表明,您已将不需要的数据存储到数据库中。但是,您没有展示如何将数据存储在数据库中,因此不能给出具体的编程示例如何修复存储数据。
因此,只有一般性答案似乎适用于您需要更改数据库中数据的存储方式。
从另一方面,您可以尝试从数据库中获取数据时修复数据。然而,这似乎非常麻烦,因为您需要先从数据库解析数据,然后以您想要的格式创建一个新的XML文档:
$dbData
= '<PaymentAmount>
<value>74.8501</value>
</PaymentAmount>';
$dbDoc = new SimpleXMLElement($dbData); # XML doc from database
$tag = $dbDoc->getName(); # Get tag name
$newDoc = new SimpleXMLElement("<$tag/>"); # XML doc for application
$newDoc->{0} = (string) $dbDoc->value[0]; # import value
$newData = explode("\n", $newDoc->asXML(), 2)[1]; # remove XML declaration
echo $newData; # <PaymentAmount>74.8501</PaymentAmount>