php simplexml在xml中的元素中带有点字符

jit*_*jit 5 php simplexml

使用以下xml格式我们如何从php中的XMLReader访问News.Env元素?

$xmlobj->News->News.Env 给出了不正确的Env.

<?xml version="1.0" encoding="utf-8"?>
<News>
  <News.Env>abc</News.Env>
</News>
Run Code Online (Sandbox Code Playgroud)

Kin*_*nch 15

这是因为dot .是php中的字符串连接符.在你的情况下,它尝试连接$xmlobj->News->News(它不存在,因此是空的)与常量Env(它也不存在,并被视为一个字符串.你会得到一个通知与适当的error_level)

$tmp = 'News.Env';
$xmlobj->News->$tmp;
Run Code Online (Sandbox Code Playgroud)

或简而言之

$xmlobj->News->{'News.Env'};
Run Code Online (Sandbox Code Playgroud)

更新:如果您使用SimpleXML(并根据语法执行),它将$xmlobj使用News- (root-)元素"启动" .

$xmlobj->{'News.Env'};
Run Code Online (Sandbox Code Playgroud)