考虑xml
<data>
<node1>
some text some text <nested-node>nest node content</nested-node> some text
</node1>
</data>
想要访问<node1>
代码(我可以做),但我希望获得以下内容......
some text some text <nested-node>nest node content </nested-node>
some text
请帮帮我怎样才能实现这个目标?
答案 0 :(得分:0)
问题是你的XML在顶层没有很好的形成。
您不能在文本序列中使用标记。解析器删除了这些元素。
有了这个:
$xml = new SimpleXMLElement(file_get_contents('xmltest.xml'));
var_dump($xml->node1);
你可以阅读节点。
答案 1 :(得分:0)
我对这个问题感到好奇。是否真的不可能做OP想要的事情? @Stony指出,格式错误的XML使得这一点变得不可能,如果XML函数不能像OP那样以错误的XML格式工作,我也不会感到惊讶。
以下是XML中嵌套元素的示例:http://www.featureblend.com/xml-nesting.html
如果您像这样形成XML:
<data>
<master_node>
<nested1>First nested node text.</nested1>
<nested2>Second nested node text.</nested2>
<nested3>Third nested node text.</nested3>
</master_node>
</data>
您可以获取所有文字内容:
$xml = new SimpleXMLElement(file_get_contents('xmltest.xml'));
var_dump($xml->master_node);
也许有可能与JavaScript或普通PHP类似。只需将文件加载到变量中,然后使用正则表达式或字符串搜索函数对其进行解析。使用正则表达式解析XML,是的,我知道,这就像使用正则表达式解析HTML一样,这是一个很大的禁忌......