में DOMDocument दस्तावेज़ में क्रॉल और पार्स करने के लिए मैंने दस्तावेज़ों और डीओएम के बारे में उदाहरण पढ़ना शुरू कर दिया है।php
उदाहरण के लिए मैं दस्तावेज़ के भाग के नीचे से पता चला है:
:<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"> </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>
मैं बकवास या उन्हें अंदर जानकारी नहीं है कि क्या सभी tr
टैग मिलता है और विश्लेषण करने के लिए निम्नलिखित कोड का उपयोग करने की कोशिश कर रहा हूँ
$dom = new DOMDocument();
@$dom->loadHTML($html);
$xpath = new DOMXPath($dom);
$tags = $xpath->query('.//div[@id="showContent"]');
foreach ($tags as $tag) {
$string="";
$string=trim($tag->nodeValue);
if(strlen($string)>3) {
echo $string;
echo '<br>';
}
}
हालांकि मैं टैग के बिना सिर्फ छीन स्ट्रिंग हो रही है, उदाहरण के लिए:
Crap
Crap
Title
Description
,210
लेकिन मैं चाहते हैं पाने के लिए:
<tr>
<td>Crap</td>
</tr>
<tr>
<a href="link">title</a>
</tr>
कैसे एचटीएमएल नोड्स (टैग) रखने के लिए?
सी [PHP के DOMDocument में innerHTML] (http://stackoverflow.com/questions/2087103/innerhtml-in-phps-domdocument)। – netcoder
आपका XPath div से मेल खाता है। आपके द्वारा दिखाए गए HTML को प्राप्त करने के लिए, आपको अलग-अलग XPath क्वेरी/क्वेरीज़ का उपयोग करना होगा और फिर परिणामों को 'echo $ dom-> save ($ node)' पर पास करना होगा। कृपया स्पष्ट करें कि आप क्या प्राप्त करने का प्रयास कर रहे हैं। – Gordon
@netcoder आंतरिक HTML यहां बिल्कुल आवश्यक नहीं है। – Gordon