Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将XML转换为对象并保留HTML_Php_Html_Xml_Json_Parsing - Fatal编程技术网

Php 将XML转换为对象并保留HTML

Php 将XML转换为对象并保留HTML,php,html,xml,json,parsing,Php,Html,Xml,Json,Parsing,我有一个如下所示的XML文件: <?xml version="1.0" encoding="UTF-8"?> <plugins> <plugin> <name>Test</name> <changelog> <ul> <li>Test</li> <li>

我有一个如下所示的XML文件:

<?xml version="1.0" encoding="UTF-8"?>
<plugins>
    <plugin>
        <name>Test</name>
        <changelog>
            <ul>
                <li>Test</li>
                <li>Test 2</li>
                <li>Test 3</li>
            </ul>
        </changelog>
    </plugin>
</plugins>
并获得以下信息:

stdClass Object (
    [plugin] => Array (
        [0] => stdClass Object (
            [name] => Test
            [changelog] => stdClass Object (
                [ul] => stdClass Object (
                    [li] => Array (
                        [0] => Test
                        [1] => Test 2
                        [2] => Test 3
                    )
                )
            )
        )
    )
)

我曾尝试将HTML包装在
中,但随后我只收到一个空的changelog对象。每当解析XML文件时,我可以做些什么来保留HTML?

您需要
LIBXML\u NOCDATA
选项:

simplexml_load_file( 'plugins.xml', 'SimpleXMLElement' , LIBXML_NOCDATA );
CDATA
即使没有此选项,也会加载部分:

$changelog = $simpleXML_plugin_objs->children()->children();
echo $changelog[1];
但它们不是常规对象变量,因此
json\u encode()
print\u r()
,以及其他检查函数将它们视为空的
simplexmlement
对象:

print_r($simpleXML_plugin_objs);

您需要
LIBXML\u NOCDATA
选项:

simplexml_load_file( 'plugins.xml', 'SimpleXMLElement' , LIBXML_NOCDATA );
CDATA
即使没有此选项,也会加载部分:

$changelog = $simpleXML_plugin_objs->children()->children();
echo $changelog[1];
但它们不是常规对象变量,因此
json\u encode()
print\u r()
,以及其他检查函数将它们视为空的
simplexmlement
对象:

print_r($simpleXML_plugin_objs);

您需要
LIBXML\u NOCDATA
选项:

simplexml_load_file( 'plugins.xml', 'SimpleXMLElement' , LIBXML_NOCDATA );
CDATA
即使没有此选项,也会加载部分:

$changelog = $simpleXML_plugin_objs->children()->children();
echo $changelog[1];
但它们不是常规对象变量,因此
json\u encode()
print\u r()
,以及其他检查函数将它们视为空的
simplexmlement
对象:

print_r($simpleXML_plugin_objs);

您需要
LIBXML\u NOCDATA
选项:

simplexml_load_file( 'plugins.xml', 'SimpleXMLElement' , LIBXML_NOCDATA );
CDATA
即使没有此选项,也会加载部分:

$changelog = $simpleXML_plugin_objs->children()->children();
echo $changelog[1];
但它们不是常规对象变量,因此
json\u encode()
print\u r()
,以及其他检查函数将它们视为空的
simplexmlement
对象:

print_r($simpleXML_plugin_objs);

这工作做得很好!你能编辑并添加更多关于我为什么需要为未来读者添加这些额外信息的信息吗?这非常有效!你能编辑并添加更多关于我为什么需要为未来读者添加这些额外信息的信息吗?这非常有效!你能编辑并添加更多关于我为什么需要为未来读者添加这些额外信息的信息吗?这非常有效!请你编辑并添加更多信息,说明我为什么需要为未来读者添加这些额外信息?