打开XML转换成使用PHP
问题描述:
我做查询Oracle数据库使用BLOB数据类型打开XML转换成使用PHP
我要生成一个字符串传递作为参数传递给simplexml_load_string功能存储XML内容的字段的字符串。
我收到的资源类型:
object(OCI-Lob)[111]
public 'descriptor' => resource(118, oci8 descriptor)
并使用此代码:
$query = "SELECT xmlcontent FROM myxmltable";
$stid = oci_parse($conn, $query);
oci_execute($stid);
$xml = '';
while (($row = oci_fetch_assoc($stid)) != false) {
// $xml = simplexml_load_string($row['XML']);
$xml = $row['xmlcontent'];
}
var_dump($xml);
我如何改变资源为字符串?
我wanto从对象转向串的XML是:
<?xml version="1.0" encoding="utf-8"?>
<VehicleValidation xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<Validation Id="Validation">
<Vehicle>
<Year>2017</Year>
<Brand>One car brand</Brand>
</Vehicle>
<Brand>
<Info>
<Data>
<Address>
One car brand Address
</Address>
<Data>
</Info>
</Brand>
</Validation>
</VehicleValidation>
答
OCI-Lob
是用于与表示LOB内容交互来提供various useful methods的类。
你或许可以直接通过load
方法的结果为simplexml_load_string
:
$xml = simplexml_load_string($row['xmlcontent']->load());
,请务必考虑内存限制的手册页上提到:
随着脚本执行被终止时, memory_limit已到达,请确保LOB不超过此限制。在大多数情况下,建议使用OCI-Lob :: read。
你能分享你的'XML'字符串和你的预期输出吗? –
只需将XML添加到问题 –
你能告诉我你想从这个XML中提取什么吗? –