使用PHP将xml转换为字符串

时间:2017-06-01 17:39:43

标签: php xml oracle

我在oracle数据库中查询使用blob数据类型

存储xml内容的字段

我想生成一个字符串作为参数传递给simplexml_load_string函数。

我收到资源类型:

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);

如何将资源转换为字符串?

我想要从对象转换为字符串的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>

1 个答案:

答案 0 :(得分:1)

OCI-Lob是一个提供various useful methods用于与所代表的LOB内容进行交互的类。

您可以将load方法的结果直接传递给simplexml_load_string

$xml = simplexml_load_string($row['xmlcontent']->load());

请务必考虑手册页中提到的内存限制:

  

当达到memory_limit时终止脚本执行,请确保LOB不超过此限制。在大多数情况下,建议使用OCI-Lob :: read。