PHP XML Parser - 忽略嵌套/子标签 [英] PHP XML Parser - ignoring nested/child tags
本文介绍了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屋!
查看全文