我是php新手,所以请原谅这个简单的问题:如何从元素中提取文本?SometextIwanttoread我有这个作为开始:getElementById("myElement");$html=$dom->saveHTML($data);但是呢?什么是正确的指令? 最佳答案 要获取元素包含的文本,您需要textContent属性:$text=$data->textContent; 关于phpdomdocument读取元素内部文本,我们在StackOverflow上找到一个类似的问题:
我正在编写一个脚本,它获取一个网页并检测使用了多少次类似facebook之类的按钮。由于这最好使用DOM来完成,因此我决定使用PHP的DOMDocument。不过,我遇到的一个问题是针对像facebook的点赞按钮这样的元素:因为这个元素在技术上有一个命名空间“fb”,DOMDocument抛出一个警告说这个命名空间前缀没有定义。然后它继续去除前缀,所以当我到达所述元素时,它的标签不再是fb:like,而是like。有什么方法可以“预注册”命名空间吗?有什么建议吗? 最佳答案 你可以使用tidy在对它使用xml解析器之前进行修饰。$
例如,我创建了一个DOMDocument像那样:createDocumentType('html',//qualifiedName'-//W3C//DTDXHTML1.0Transitional//EN',//publicId'http://www.w3.org/TR/xhtml1/DTD/xhtml1-'.'transitional.dtd'//systemId);$document=$implementation->createDocument('','',$dtd);$elementHtml=$document->createElement('html');$elementHea
我在一个返回saveHTML()的类中有几个函数。在我回显类saveHTML()中的多个函数后,它重复了一些HTML。我最初通过执行saveHTML($node)解决了这个问题,但现在这似乎不是一个选项。我不知道saveHTML($domnode)仅在PHP5.3.6中可用,而且我无法控制将文件上传到的服务器,所以现在我必须使其与PHP5.2兼容。为了简单起见,只是为了展示我的问题,它看起来类似于:dom=$dom;}publicfunctioncreate_paragraph(){$p=$this->dom->createElement('p','Text1.');$this->do
我阅读了有关此错误的所有信息,但未能找到任何解决方案。我有一个看起来像这样的简单页面:$xmlfile="/var/www/marees.xml";//Fichierdanslequelrécupérerlesdonnées$ent=newDOMDocument();$ent->load($xmlfile);if(!(@$ent->load($xmlfile))){echo"Unabletoload:".$xmlfile;exit();}四次中有三次随机出现此错误:PHPWarning:DOMDocument::load():I/Owarning:failedtoloadexterna
这个问题似乎已经回答了很多次,但我似乎仍然无法将这些碎片拼凑起来。我想按名称获取每个类的节点值。例如3212我想获取32和12。我认为这需要for循环,但不确定具体如何实现它。这是我目前所拥有的$domain="http://domain.com";$dom=newDOMDocument();$dom->loadHTMLFile($domain);$xpath=newDomXpath($dom);$div=$xpath->query('//*[@class="thename"]')->item(0);$stuff=$div->textContent;echo($stuff);
我目前想要获取的只是gd:email的属性,即“address=”,目前仅此而已。我可以得到xml部分,哎呀,只要它在标签内,我什至可以得到任何给定的想法,但要获得任何给定的属性,就像我的情况一样。我完全困惑。我曾经知道如何去做,但我已经很久没有做任何对XML使用来说不简单的事情了。所以我把自己搞砸了..xxxxxxxxxxxxxx@gmail.com2011-06-30T00:07:48.706ZTacoBells'sContactsTacoBellxxxxxxxxxxxxxx@gmail.comContacts9015http://www.google.com/mate/feeds
我正在使用CakePHP的Xmlcorelibrary在View中生成XML:$xml=Xml::build($data,array('return'=>'domdocument'));echo$xml->saveXML();View是从带有数组的Controller馈送的:$this->set(array('data'=>array('root'=>array(array('@id'=>'A&B:OK','name'=>'C&D:OK','sub1'=>array('@id'=>'E&F:OK','name'=>'G&H:OK','sub2'=>array(array('@id'=>
我正在使用SimpleXML类构建RSS解析器,我想知道使用DOMDocument类是否会提高解析器的速度。我正在解析一个至少有1000行的rss文档,并且我使用了这1000行中的几乎所有数据。我正在寻找完成时间最短的方法。 最佳答案 SimpleXML和DOMDocument都使用相同的解析器(libxml2),所以它们之间的解析区别是可以忽略不计。这很容易验证:functiontime_load_dd($xml,$reps){//discardfirstruntoprimecachesfor($i=0;$iloadXML($xm
我不知道如何阻止DOMDocument处理这些字符。substituteEntities=false;$doc->loadHTML('¯\(°_o)/¯');print_r($doc->saveHTML());?>预期输出:¯(°_o)/¯实际输出:¯(°_o)/¯http://codepad.org/W83eHSsT 最佳答案 我在DOMDocument::loadHTML的评论中找到了提示文档:(Commentfrom21-Dec-200905:02:"YoucanalsoloadHTMLasUTF-8usingthissimp