jjzjj

SimpleXmlElement

全部标签

php - 带有 SimpleXMLElement 的大型 PHP for 循环非常慢 : memory issues?

我目前有一些PHP代码基本上从xml文件中提取数据并使用$products=newSimpleXMLElement($xmlString);创建简单的xml对象然后我循环遍历这段代码一个for循环,我在其中为XML文档中的每个产品设置产品详细信息。然后将其保存到mySql数据库中。在运行此脚本时,添加的产品频率会降低,直到它们最终在达到最大值之前停止。我试过间歇性地运行垃圾回收,但无济于事。以及取消设置似乎不起作用的各种变量。部分代码如下所示:datafeed[0]);echo'Starting';for($i=0;$idatafeed->prod[$i]['id'];etcetc$s

php - 循环遍历 SimpleXMLElement 以访问属性

我正在尝试使用SimpleXML检索过程数据,但遇到了很大困难。我在这里阅读了很多关于这个主题的主题,它们看起来都像我在做什么,但我的没有用。这是我得到的:我的代码:$xml=simplexml_load_file('10.xml');foreach($xml->ROWSas$comp_row){$id=$comp_row->COMP_ID;}当我在调试器中逐步执行此操作时,我可以看到$id未设置为COMP_ID的字符串值,而是变成了一个包含CLASSNAME对象的SimpleXMLElement本身。我已经尝试了很多解决此属性的变体,但都没有奏效,包括$comp_row->attri

php - SimpleXMLElement 和警告 : Illegal offset type

警告:非法偏移类型我从xml输出中得到了这个变量var_dump($key);它给我object(SimpleXMLElement)#11(1){[0]=>string(5)"Cairo"}现在我想将“Cairo”作为获得其值(value)的关键$lang[]=array('Cairo'=>"Cairocity");执行此操作时出现错误echo$lang[$key];它给了我“警告:非法偏移类型”,因为键是SimpleXMLElement我怎样才能使它成为正常的var? 最佳答案 使用(string)$key将其转换为字符串。

php - 从 SimpleXMLElement 对象获取值

您好,我有以下XML片段:......JensonButton1980-01-19British......我可以使用以下内容轻松获取GivenName:$item->Driver->GivenName;但是当我使用时:$item->Driver->FamilyName;我得到SimpleXMLElement对象()我环顾四周,发现这可能与将它传递给字符串有关,但随后我在屏幕上什么也看不到。甚至不是SimpleXMLElement对象。我不明白,因为它是GivenName的sibling,而且有效。 最佳答案 在这两种情况下您都会得

php - 在 simpleXMLElement 的 foreach 循环中获取子索引

Thisistitle1Thisisdesc1Thisistitle2Thisisdesc255362137Thisistitle3Thisisdesc4这是我的PHP代码:itemas$key=>$item){echo13Sep2010$item->titleHTML;}?>在php渲染页面后,返回.我想要$key得到其中的数字,那么如何获得呢? 最佳答案 这是因为simpleXML结构不是普通数组,而是没有数组索引的迭代器。除了使用变量手动跟踪之外,我不知道有任何其他解决方案:$index=0;$xml=simplexml_lo

php - 有人遇到过强制 PHP SimpleXMLElement 节点名称为大写的方法吗?

API集成文档指定所有节点名称都区分大小写。我正在使用PHPSimpleXMLElement,但我没有看到强制使用大写节点名称的方法。有人遇到过强制节点名称大写的方法吗?$xmlstr=''.'';$sxe=newSimpleXMLElement($xmlstr);$authentication=$sxe->addChild('Authentication');$authentication->addChild('Version','2.0');$processid=$sxe->addChild('ProcessID=importSale');$importsale=$processi

php - 如何将空 XML 节点转换为空字符串而不是 SimpleXMLElement

我有一个有时有空节点的XML字符串。当使用simplexml_load_string解析它时,解析器将任何空节点(例如)解释为一个空的SimpleXMLElement。实际上,我更希望这些以空字符串的形式出现,或者完全省略。我试过使用LIBXML_NOBLANKS,如下所示,但它似乎没有效果。下面是一些演示情况的代码。节点“p2”为空:$xml="13";$obj=simplexml_load_string($xml,'SimpleXMLElement',LIBXML_NOBLANKS);header("Content-type:text/plain");echo"STRING\n--

php - 从 SimpleXMLElement 到 SimpleXMLIterator

我有一个很好的函数,可以将(简单的,duh)xml转换为数组,为此它使用SimpleXmlIterator类。它工作得很好,但我想让它不仅接受xml源字符串或SimpleXmlIterator对象,而且还接受SimpleXmlElement,因为我更多地使用它们通常是迭代器(实际上我只是在那个函数中使用)。到目前为止我所做的是$iter=newSimpleXmlIterator($xml->asXML());但对我来说,从巴黎到伦敦就像穿过东京。毕竟,SimpleXmlIterator扩展了SimpleXmlElement,那么是否有更好的方法将SimpleXmlElement对象转换

php - 回显一个 SimpleXMLElement 对象

我有一个看起来像这样的数组。Array([@attributes]=>Array([version]=>2.0)[channel]=>SimpleXMLElementObject([title]=>ActiveFireIncidentPage[link]=>http://www.ci.austin.tx.us/fact/default.cfm[description]=>ThispageprovidesinformationonactiveAustin/TravisCountyFireincidents.Dataisupdatedevery3minutes.[lastBuildDate

php - 替换 SimpleXMLElement 的值

这可能很简单,但我在网上找不到任何示例。我需要使用xpath找到一个节点并替换它的值。这是xml文档的一个小版本:JohnDoe这是我的php代码:xpath("/w:document/w:body/w:p[1]/w:r[1]/w:t[1]");//thefollowingcodedoesn'twork...$xml->$result="GeorgeDow";echo$xml->asXML();?>基本上,JohnDoe应该是GeorgeDow 最佳答案 我找到了解决方案。基本上,由于xpath函数返回一个SimpleXMLElem