簡體   English   中英

PHP DOMDocument XML

[英]PHP DOMDocument XML

我有這樣的php變量:

<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>

現在我想從h4中獲取數據,該數據位於classA中,名稱,名稱/編號/ stringA / stringB或類似名稱。 如何使用DOMDocument完成這項工作?

我不知道如何執行此操作,因為這兩個類之間的唯一區別是a-tag。

您需要的是getElementById($id)

http://php.net/manual/zh/domdocument.getelementbyid.php

$dom = new DomDocument();
$dom->loadHTML($html);
$a = $dom->getElementById('someID2');

如果要使用DOM訪問div,則必須為div分配不同的類,然后可以執行以下操作:

    <div class="class1">
      <a id="someID1"></a>
      ... 
    </div>
    <div class="class2">
      <a id="someID2"></a>
      ... 
    </div>

那么您可以執行以下操作:

    document.getElementsByClassName('class2');

使用DOMXpath選擇具有特殊條件的元素。 在您的情況下,請基於子ID屬性。

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

演示中檢查結果

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM