在XML字符串中看到<?var type ="string"?>,但这是什么意思?

dqh*_*cks 8 xml

我最近看到一个包含的XML字符串<?var type="string" ?>.我想知道是否有人知道这意味着什么?它与我想象的PHP有关.这是一个上下文片段.

<?xml version="1.0" encoding="UTF-8"?>
<node>
   <?var type="string" ?>
   <somenode>Value</somenode>
</node>
Run Code Online (Sandbox Code Playgroud)

我似乎无法搜索谷歌,<?var所以也许你们可以帮助我.

Bol*_*ock 7

这是一个XML处理指令,与PHP无关.(无论如何,这不是合法的PHP语法.)您在文档开头看到的XML声明是一种特殊的PI.

不过,我不能说太多,因为我真的从来没有见过XML PI用作任何野外任何东西的XML PI. <? ?>开发人员通常将分隔符识别为PHP分隔符(具有短开口分隔符).

实际上,正如评论中所讨论的那样,完整的PHP分隔符<?php ?>可以被认为是一种处理指令,即使它们在XHTML/XML文档之外的其他许多地方使用过.甚至可以说PHP 通过处理指令设计为符合XHTML标准.

事实上,下面的XHTML标记,带有PHP片段,实际上是有效的!

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title></title>
  </head>
  <body>
    <p><?php echo 'Hello world!'; ?></p>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

但是,它不会使用短开始标记进行验证,因为XML PI必须<?以至少一个名称字符开头.查看PI语法规范的第一个链接.


小智 5

这是zend 5-5学习指南中的内容.问题是"这个XML文档出了什么问题?" 答案是"没什么"

我想这部分是用于PHP代码,但重复的xml声明似乎很奇怪所以我把这个xml放在一个文件中,并在我的浏览器中打开它并出现错误:

此页面包含第6行第7行的错误:XML declaration allowed only at the start of the document.下面是第一个错误之前的页面呈现.

那么为什么学习指南说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>
Run Code Online (Sandbox Code Playgroud)