php - 检查xml是否有 root 标记

  显示原文与译文双语对照的内容
0 0

我正在尝试检查一段xml是否有 root 标签。 作为示例


<xml>
 <test>test</test>
</xml>

应被视为有效而


<test>test</test>

应视为无效。

第一个示例应该被处理,而第二个示例应该在 <helper></helper> 标记中包装。

在PHP中,如果我们还考虑了标签可以具有属性,我一直在考虑使用正则表达式。

收费费:我使用simplexml_load_string加载字符串与一个 XML streamer组合,问题是 XML streamer将XML文件 1标记为在时间内失效。

当我有一个这样的文件:


<xml>
 <name attr="test">Archcry</name>
 <test>
 <name>Archcry</name>
 <moreinfo>more info goes here</moreInfo>
 </test>
</xml>

我得到了一些类似的东西:


<name attr="test">Archcry</name>

还有:


<test>
 <name>Archcry</name>
 <moreinfo>more info goes here</moreInfo>
</test>

第二段代码可以通过simplexml_load_string运行,很好。 但是我想将 helper 标签添加到第一个部分,因为否则我没有一个好的xml对象来处理

任何人都可以在这方面帮助我吗?

时间: 原作者:

0 0

要了解XML字符串是否有 root 节点,你可以使用simplexml类。 对于你的目的,可以使用 children 方法:


$string ="<test>test</test>";
//$string ="<xml><test>test</test></xml>";
$xml = simplexml_load_string($string);
if(count($xml->children() == 0) {
 echo"<helper>".$xml->asXML()."</helper>";
} else {
//has root element;
}

...