xml如何解析一个变量,不是文件

peterspace 2004-01-07 10:57:38
this_page.php
$xml_temp_string被form提交过来到这个页面,
以前解析一个文件的代码,我会简单组织编写,如下:
...
$parser = xml_parser_create();
xml_set_element_handler($parser, "startElement", "endElement");
xml_set_character_data_handler($parser, "characterData");
if (!($filehandler = fopen($xml_file, "r"))) { die("could not open XML input"); }
while ($data = fread($filehandler, 4096))
{ if (!xml_parse($parser, $data, feof($filehandler)))
{ die(sprintf("XML error: %s at line %d",
xml_error_string(xml_get_error_code($parser)),
xml_get_current_line_number($parser)));
}
}
fclose($filehandler); xml_parser_free($parser);
...
运行正常。
但现在要解析一个变量,修改如下:
$parser = xml_parser_create();
xml_set_element_handler($parser, "startElement", "endElement");
xml_set_character_data_handler($parser, "characterData");
xml_parse($parser, $xml_temp_string, true);
xml_parser_free($parser);
调试不能通过。
烦!请哪位高手,拔笔相助!
...全文
98 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
peterspace 2004-01-07
  • 打赏
  • 举报
回复
up
peterspace 2004-01-07
  • 打赏
  • 举报
回复
在this_page中echo $xml_temp_string
网页显示结果是:
europe 1 20 1988 20 21 1981 apasin 1 Henry Buller (Department of Geography, University of Paris, France) Geoff A. Wilson (Department of Geography, King\'s College, London) Andreas Holl (Danish Forest and Landscape Research Institute, Horsholm, Denmark)Hardback H Ashgate Publishing Limited 1-84014-504-8 156 x 223 2000 182536434999686 Perspectives on Europe Agri-environmental Policy in the European Union 310 In print IN 28 Jan 2000 54.50 Buller, Henry (Department of Geography, University of Paris, France) 1840145048 184 2 Graeme Barker Tom Rasmussen (University of Manchester)New Ed Stephen Banfield Paperback P Blackwell Publishers 0-631-22038-0 Y 229 x 152 2000 182537007547389 Peoples of Europe S. The Etruscans 400 In print IN Mar 2000 19.99 Barker, Graeme 0631220380 GARD INGRAM BTB063 http://62.173.95.231/jackets/m/063/0631220380.jpg 3 Peter Brown (Princeton University, USA) 2nd Ed Hardback H Blackwell Publishers 0-631-22137-9 Y 229 x 152 2002 182537007952173 Making of Europe S. Triumph and Diversity 200-1000 AD The Rise of Western Christendom 640 Out of print OP 20 Nov 2002 60.00 Brown, Peter (Princeton University, USA) 0631221379 INGRAM 063
(...省略)

网页源文件代码是:
<?xml version=\"1.0\"?>
<resultscollection>
<resultsetinformation>
<search_terms>europe</search_terms>
<documentstart>1</documentstart>
<documentend>20</documentend>
<documentcount>1988</documentcount>
<pagelength>20</pagelength>

<nextpage>21</nextpage>
<lastpage>1981</lastpage>
<nextpage_url><![CDATA[http://62.173.95.224/xmla/dll_results.asp?m=21&CID=apasin&DC=1988&MW=1&DBM=trial&FIELDS=default,jacket&ST_01=europe&SF_01=series]]></nextpage_url>
<lastpage_url><![CDATA[http://62.173.95.224/xmla/dll_results.asp?m=1981&CID=apasin&DC=1988&MW=1&DBM=trial&FIELDS=default,jacket&ST_01=europe&SF_01=series]]></lastpage_url>
</resultsetinformation>
<sessioninfo>
<querystring><![CDATA[/xmla/dll_results.asp?m=1&CID=apasin&DBM=trial&FIELDS=default,jacket&ST_01=europe&SF_01=series]]></querystring>
<prop><![CDATA[TAG=&CID=apasin&PGE=]]></prop>
<cid>apasin</cid>


</sessioninfo>
<resultfields id=\"1\">
<id>1</id>
<titleurl><![CDATA[http://62.173.95.224/xmla/dll_display.asp?K=182536434999686&M=1&CID=apasin&DC=1988&MW=1&DBM=trial&ST_01=europe&SF_01=series]]></titleurl>
<fv_editor id=\"1\">Henry Buller (Department of Geography, University of Paris, France)</fv_editor>
<fv_editor id=\"2\">Geoff A. Wilson (Department of Geography, King\'s College, London)</fv_editor>
<fv_editor id=\"3\">Andreas Holl (Danish Forest and Landscape Research Institute, Horsholm, Denmark)</fv_editor><fv_format>Hardback</fv_format>
<fv_format_simple_code>H</fv_format_simple_code>
<fv_imprint>Ashgate Publishing Limited</fv_imprint>
<fv_isbn>1-84014-504-8</fv_isbn>
<fv_page_size>156 x 223</fv_page_size>
<fv_pub_year>2000</fv_pub_year>
<fv_ref_no>182536434999686</fv_ref_no>
<fv_series>Perspectives on Europe</fv_series>
<fv_title>Agri-environmental Policy in the European Union</fv_title>
<fv_total_pages>310</fv_total_pages>
<fv_uk_avail>In print</fv_uk_avail>
<fv_uk_avail_code>IN</fv_uk_avail_code>
<fv_uk_pubdate>28 Jan 2000</fv_uk_pubdate>
<fv_uk_vat_price>54.50</fv_uk_vat_price>
<fv_vx_first_name>Buller, Henry (Department of Geography, University of Paris, France)</fv_vx_first_name>
<fv_vx_isbn>1840145048</fv_vx_isbn>
<fv_isbn_prefix>184</fv_isbn_prefix>
</resultfields>
(...省略)
</resultscollection>
<!-- 9768.734/9770.187 Total time: [1.45] -->

应该没问题的,来自英国的一个xml服务商。
go on...

xuzuning 2004-01-07
  • 打赏
  • 举报
回复
请确保$xml_temp_string的内容是合法的xml格式
mikespook 2004-01-07
  • 打赏
  • 举报
回复
$xml_temp_string
的内容是什么?

你echo出来看看~~~

还有表单提交过来的应该用$_POST["..."]
不知道是不是你前面给$xml_temp_string赋$_POST["..."]值了?
peterspace 2004-01-07
  • 打赏
  • 举报
回复
php.ini的设置是不是可以随便改的?我是用www.51.net网站的空间。
好烦!
不行啦,不做这个项目,我拿着工资回家过年去,上海不好玩。
翠花……
xuzuning 2004-01-07
  • 打赏
  • 举报
回复
$xml_temp_string = StripSlashes($xml_temp_string);

也可关闭magic_quotes_gpc开关
1、php.ini中
magic_quotes_gpc=off

2、接收表单的程序中
if(get_magic_quotes_gpc() == 1)
set_magic_quotes_gpc(0);
peterspace 2004-01-07
  • 打赏
  • 举报
回复
你有两颗星星!果然有两下子。
那怎么办?
原文本来也是没有被转义的: ...<resultfields id="1 ">...
但提交过来后就变了,怎么办?


上个页面中提交前的javascript代码:
function checkseries(m,seriesname)
{
var xmlhttp=new ActiveXObject("Msxml2.xmlhttp");
xmlhttp.open("GET","http://62.173.95.224/xmla/dll_results.asp?m="+m+"&CID=apasin&DBM=trial&FIELDS=default,jacket&ST_01="+seriesname+"&SF_01=series",false);
xmlhttp.send();
document.formseries.seriestext.innerText = xmlhttp.ResponseText;
document.formseries.submit();
return true;
}
xuzuning 2004-01-07
  • 打赏
  • 举报
回复
形如<resultfields id=\"1\">的节点肯定是错了
应该是<resultfields id="1">
peterspace 2004-01-07
  • 打赏
  • 举报
回复
up again

21,891

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧