相关疑难解决方法(0)

php中的DOMDocument

我刚刚开始阅读有关DOM的文档和示例,以便抓取和解析文档.

例如,我有部分文件如下所示:

    <div id="showContent">
    <table>
    <tr>
        <td>
         Crap
        </td>
    </tr>
<tr>
          <td width="172" valign="top"><a href="link"><img height="91" border="0" width="172" class="" src="img"></a></td>
          <td width="10">&nbsp;</td>
          <td valign="top"><table cellspacing="0" cellpadding="0" border="0">
              <tbody><tr>
                <td height="30"><a class="px11" href="link">title</a><a><br>
                    <span class="px10"></span>
                </a></td>
              </tr>
              <tr>
                <td><img height="1" width="580" src="crap"></td>
              </tr>
              <tr>
                <td align="right">
                    <a href="link"><img height="16" border="0" width="65" src="/buy"></a>
                </td>
              </tr>
              <tr>
                <td valign="top" class="px10">
                    <p style="width: 500px;">description.</p>
                </td>
              </tr>
          </tbody></table></td>
        </tr>
    <tr>
        <td>
Crap
        </td>
    </tr>
    <tr>
        <td>
         Crap
        </td>
    </tr>
    </table>
    </div>
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用以下代码来获取所有tr标记并分析其中是否存在垃圾或信息:

$dom …
Run Code Online (Sandbox Code Playgroud)

php html-parsing domdocument xml-parsing

25
推荐指数
1
解决办法
2万
查看次数

如何通过索引获取PHP DOMDocument的子代

我想要一个PHP DOMDocument的孩子.假设我有一个这样的DOM文档:

<div>
   <h1 ></h1>
   <div id=2></div>
   <div class="test"></div>
...
</div>
Run Code Online (Sandbox Code Playgroud)

我有一个索引号3.然后我需要得到元素<div class="test"></div>.在DOMDocument API中,没有类似的方法children(3).在那儿?我怎样才能让一个有索引的孩子?

php dom

9
推荐指数
2
解决办法
3万
查看次数

使用XML DOM打印XML文件的内容

我有一个简单的XML文档:

<?xml version="1.0"?>
<cellphones>
  <telefon>
    <model>Easy DB</model>
    <proizvodjac>Alcatel</proizvodjac>
    <cena>25</cena>
  </telefon>
  <telefon>
    <model>3310</model>
    <proizvodjac>Nokia</proizvodjac>
    <cena>30</cena>
  </telefon>
  <telefon>
    <model>GF768</model>
    <proizvodjac>Ericsson</proizvodjac>
    <cena>15</cena>
  </telefon>
  <telefon>
    <model>Skeleton</model>
    <proizvodjac>Panasonic</proizvodjac>
    <cena>45</cena>
  </telefon>
  <telefon>
    <model>Earl</model>
    <proizvodjac>Sharp</proizvodjac>
    <cena>60</cena>
  </telefon>
</cellphones>
Run Code Online (Sandbox Code Playgroud)

我需要使用XML DOM打印此文件的内容,它需要像这样构造:

"model: Easy DB
proizvodjac: Alcatel
cena: 25"
Run Code Online (Sandbox Code Playgroud)

对于XML中的每个节点.

它必须使用XML DOM完成.那就是问题所在.我可以通常,简单的方式做到这一点.但是这个让我烦恼,因为我似乎无法在互联网上找到任何解决方案.

这是我可以做的,但我需要访问内部节点(子节点)并获取节点值.我也想摆脱一些奇怪的字符串"#text",它出现了.

<?php
    //kreira se DOMDocument objekat
    $xmlDoc = new DOMDocument();

    //u xml objekat se ucitava xml fajl
    $xmlDoc->load("poruke.xml");

    //dodeljuje se promenljivoj koreni element
    $x = $xmlDoc->documentElement;

    //prolazi se kroz petlju tako sto se ispisuje informacija o podelementima …
Run Code Online (Sandbox Code Playgroud)

php xml dom

4
推荐指数
1
解决办法
1万
查看次数

使用php在xml中获取标记名

这是我的xml:

<news_item>    
    <title>TITLE</title>
    <content>COTENT.</content>
    <date>DATE</date>
<news_item>
Run Code Online (Sandbox Code Playgroud)

我想获取news_item中的标签名称.

这是我到目前为止:

$dom = new DOMDocument();
$dom->load($file_name);
$results = $dom->getElementsByTagName('news_item');
Run Code Online (Sandbox Code Playgroud)

没有使用像simpleXML这样的其他php库,我可以获得子标签的所有标签名称(而不是值)的名称吗?

示例解决方案

title, content, date
Run Code Online (Sandbox Code Playgroud)

我不知道news_item里面标签的名称,只知道容器标签名称'news_item'

多谢你们!

php xml dom getelementsbytagname

4
推荐指数
1
解决办法
9811
查看次数

如何使用PHP DOMDocument获取第一级节点?

我是PHP DOM对象的新手,有一个问题,我找不到解决方案.我有一个带有以下HTML的DOMDocument:

<div id="header">
</div>
<div id="content">
    <div id="sidebar">
    </div>
    <div id="info">
    </div>
</div>
<div id="footer">
</div>
Run Code Online (Sandbox Code Playgroud)

我需要获取第一级的所有节点(标题,内容,页脚).hasChildNodes()不起作用,因为第一级节点可能没有子节点(页眉,页脚).现在我的代码看起来像:

$dom = new DOMDocument();
$dom -> preserveWhiteSpace = false;
$dom -> loadHTML($html);
$childs = $dom -> getElementsByTagName('div');
Run Code Online (Sandbox Code Playgroud)

但这让我得到了所有的div.任何建议?

php dom

1
推荐指数
1
解决办法
4056
查看次数