Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/277.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 带多行注释的simplexml_Php_Xml_Xml Parsing_Simplexml - Fatal编程技术网

Php 带多行注释的simplexml

Php 带多行注释的simplexml,php,xml,xml-parsing,simplexml,Php,Xml,Xml Parsing,Simplexml,当使用simplexml通过php进行解析时,是否可以在xml中使用多行注释 我试过这个: <!-- my comment fsdfs --> 但是得到:评论没有终止 我真的必须: <!-- my comment --> <!-- fsdfs --> 您的示例似乎是有效的XML,不应生成错误。下面的代码经过测试,在PHPV5.4.7中没有生成错误或警告 <?php error_reporting(E_ALL | E_STR

当使用simplexml通过php进行解析时,是否可以在xml中使用多行注释

我试过这个:

<!--
     my comment
     fsdfs
  -->

但是得到:评论没有终止 我真的必须:

<!-- my comment -->
<!-- fsdfs -->

您的示例似乎是有效的XML,不应生成错误。下面的代码经过测试,在PHPV5.4.7中没有生成错误或警告

<?php
error_reporting(E_ALL | E_STRICT);

$string = <<< EOT
<xml>
    <foo>Hello</foo>
    <bar>World</bar>
    <!-- This is a single line comment. -->
    <!--
    This is a
    multi-line comment.
    -->
</xml>
EOT;

$xml = simplexml_load_string($string);

echo '<pre>';
var_dump($xml);

检查一下:是什么解析器给了您这个错误?simplexml似乎不能很好地处理注释。除了simplexml之外,如果这是一个问题,您还可以使用其他API来处理多行注释。我的注释行以
--
开头,这是导致错误的原因。如何将多个选项添加到:
simplexml\u load\u文件($filename,'simplexmlement',LIBXML\u NOCDATA)
我想尝试添加:`LIBXML_COMPACT@JohnMagnolia评论中的任何地方都不能使用“-”;这是,不是换行符,这是打破你的代码。从技术上讲,不是序列
-->
终止了注释,
-->
本身就可以直接终止注释(当您进入细节时,它会有点混乱,但底线是不要在注释中使用该序列!)
object(SimpleXMLElement)#1 (3) {
  ["foo"]=>
  string(5) "Hello"
  ["bar"]=>
  string(5) "World"
  ["comment"]=>
  array(2) {
    [0]=>
    object(SimpleXMLElement)#2 (0) {
    }
    [1]=>
    object(SimpleXMLElement)#3 (0) {
    }
  }
}