PHP XML Parser - 忽略嵌套/子标签 [英] PHP XML Parser - ignoring nested/child tags

查看:42
本文介绍了PHP XML Parser - 忽略嵌套/子标签的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我遇到过使用 XML 解析器从 php://input 中提取数据的情况.

I've got a situation where I'm using an XML parser to extract data from a php://input.

正在发送的数据看起来像:

The data being sent in looks like:

<this>foo</this>
<that>bar></that>
<data><dong>zebras</dong><fong>monkeys</fong></data>

现在,问题是因为处理程序:

Now, the issue is that because the handler:

$xml_parser = xml_parser_create();

xml_parser_set_option($xml_parser, XML_OPTION_CASE_FOLDING, false);
xml_set_element_handler($xml_parser, "startTag", "endTag");
xml_set_character_data_handler($xml_parser, "contents");

$document = file_get_contents("php://input");                  

xml_parse($xml_parser, $document);

xml_parser_free($xml_parser);

...正在为我解释标签以破译内容以使其有用...它似乎缺少 <data> 中的任何内容,即我需要找出如何获得它忽略子元素/嵌套元素/标签,只是将数据排除在外.

...is interpreting tags for me to decipher the contents to make it useful... It seems to be missing anything within <data> i.e. I need to find out how i can get it to ignore the child/nested elements/tags and just bosh out the data whatever.

推荐答案

WideDonkey,您考虑过使用 DOM 吗?你可以轻松做到:

WideDonkey, have you considered using the DOM instead? You can easily do :

$dom = new DOMDocument();
$dom->loadXML(file_get_contents('php://input'));

$data = $dom->getElementsByTagName('data');
$data = $data[0]->asXML();

这篇关于PHP XML Parser - 忽略嵌套/子标签的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆