duanpao4172 2018-10-04 11:55
浏览 48
已采纳

PHP DOMDocument XML

I have a php variable like this:

<div class="classA">
    <a id="someID1"></a>
    <div class="class1">
    <div class="class2">
        <div class="class3">
            <div class="class4">
                <h4>name, name<small>string</small></h4>
            </div>
            <div>
                <h4>number<small>string</small></h4>
            </div>
        </div>
    </div>
</div>
</div>
<div class="classA">
    <a id="someID2"></a>
    <div class="class1">
        <div class="class2">
            <div class="class3">
                <div class="class4">
                    <h4>nameA,nameA<small>stringA</small></h4>
                </div>
                <div>
                    <h4>numberA<small>stringB</small></h4>
                </div>
            </div>
        </div>
    </div>
</div>

Now I want to get the data from h4 which is in classA with so name,name/number/stringA/stringB or something like that. How do I get this done with DOMDocument?

I don't have a clue how to do that because the only difference between these two classes is the a-tag.

  • 写回答

3条回答 默认 最新

  • dongxiezhuo8852 2018-10-04 12:15
    关注

    Use DOMXpath to selecting elements with special condition. In your case, base on child id attribute.

    $doc = new DOMDocument();
    $doc->loadHTML($html);
    $xpath = new DOMXpath($doc);
    $nodes = $xpath->query("//div[@class='classA' and a[@id='someID2']]")->item(0)->getElementsByTagName("h4");
    

    Check result in demo

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看