锯<;?变量类型=";字符串“&燃气轮机;在XML字符串中,但这意味着什么?
我最近看到一个包含锯<;?变量类型=";字符串“&燃气轮机;在XML字符串中,但这意味着什么?,xml,Xml,我最近看到一个包含的XML字符串。我想知道是否有人知道这意味着什么?我想这与PHP有关。下面是一个上下文片段 <?xml version="1.0" encoding="UTF-8"?> <node> <?var type="string" ?> <somenode>Value</somenode> </node> 价值 我似乎无法在谷歌上搜索,这是一个错误,与PHP无关。(无论如何,这不是合法的PHP语法
的XML字符串。我想知道是否有人知道这意味着什么?我想这与PHP有关。下面是一个上下文片段
<?xml version="1.0" encoding="UTF-8"?>
<node>
<?var type="string" ?>
<somenode>Value</somenode>
</node>
价值
我似乎无法在谷歌上搜索,这是一个错误,与PHP无关。(无论如何,这不是合法的PHP语法。)您在文档开头看到的XML声明是一种特殊的PI
不过,除此之外,我没什么可说的,因为我从来没有见过XML PI在野外被用作任何XML PI。
分隔符通常被开发人员识别为PHP分隔符(带有一个短的开头分隔符)
实际上,正如在注释中所讨论的,完整的PHP分隔符
可以被视为一种处理指令,尽管它们在XHTML/XML文档之外的许多其他地方都有使用。甚至可以说,PHP设计为通过处理指令兼容XHTML
事实上,下面的XHTML标记实际上带有一段PHP代码
但是,它不能用短的开始标记进行验证,因为XML PI必须以开头,这是zend 5-5研究指南中的内容。
问题是“这个XML文档有什么问题?”答案是“没有”
我想这是php代码的一部分,但重复的xml声明似乎很奇怪,因此我将此xml放在一个文件中,并在浏览器中打开它,出现错误:
此页面第6列第7行有错误:XML声明仅允许在文档开头进行声明
。下面是第一个错误之前的页面呈现
价值
那么为什么研究指南说xml没有问题呢
<?xml version="1.0" encoding="UTF-8"?>
<node>
<?var type="string" ?>
<leaf>Value</leaf>
</node>
<?xml version="1.0" encoding="UTF-8"?>
<node>
<?var type="string" ?>
<leaf>Value</leaf>
</node>
价值
价值
我认为在这种情况下,它应该是一个XML属性,而不是一个PHP属性(变量)。在Zend PHP5.3认证研究指南中搜索对于某些上下文,可以找到此片段。(数据类型和格式一章,问题1)请看:所以可以使用PHP作为XML处理指令:)@hakre:这实际上取决于语法和上下文。我不知道PIs到底是怎么。。。处理,或者什么处理它们(PHP解释器?其他解释器?)。PI由处理XML的应用程序处理。例如,如果您将一个XML文档加载到PHP中,那么PHP将处理这些指令。@hakre:所以我认为PHP设计的定界符用于XHTML/XML!聪明。不幸的是,他们刚刚杀死了XHTML:(但这里的速记不一样,我在使用SimpleXMLElement实例化xml-1.xml时遇到了这个错误,数据作为url设置为true。警告:SimpleXMLElement::uu construct():xml-1.xml:6:解析器错误:仅允许在文档开头声明xml
<?xml version="1.0" encoding="UTF-8"?>
<node>
<?var type="string" ?>
<leaf>Value</leaf>
</node>
<?xml version="1.0" encoding="UTF-8"?>
<node>
<?var type="string" ?>
<leaf>Value</leaf>
</node>