Ben kazıyın ve ya yerel bir XML dosyasına dönüştürmek veya bir MySQL DB eklemek istediğiniz harici bir HTML kaynak var.
Yapmam gereken tüm kullanım XPATH Tüm td içerik veya tüm li içerik almak için böylece dış kaynak, çoğunlukla normalize ve (biraz) anlamsal olduğunu vs sorun, bazen bu öğeler <strong> veya <b> veya <i> etiketleri ihtiyacım unsurları stil kullanmaktır.
Nokta belirli bir metne vurgu eklemek için olduğundan bu, teknik olarak semantik ve geliştirici tarayıcı varsayılan değil CSS kullanmak isteyebilirsiniz.
Sorun simplexml veya DOMDocument ve benzeri PHP uzantıları DOMNode tedavi böylece ben kapmak için çalışıyorum gerçek içeriği, bu satır içi elemanın bir çocuk olarak kabul olmasıdır gibi onları. Örneğin:
<table>
<tr><td>Thing 1</td><td>Thing 2</td></tr>
<tr><td>Thing 3</td><td>Thing 4</td></tr>
<tr><td><strong>Thing 5</strong></td><td><strong>Thing 6</strong></td></tr>
</table>
: Neden olacaktır
[table] =>
[tr] =>
[td] => Thing 1
[td] => Thing 2
[tr] =>
[td] => Thing 3
[td] => Thing 4
[tr] =>
[td] =>
[strong] => Thing 5
[td] =>
[strong] => Thing 6
Açıktır ki, yukarıdaki oldukça ne Basit XML döner değil, yukarıdaki genel sorunu yansıtır.
Yani bir yolu zaten DOMDocument yerleşik bir parametre kullanılarak ya da (eğer varsa) kendi soyundan statü elimden herhangi çocuklu td elemanın içeriğini almak için ekstra gelişmiş XPath sorgusu kullanarak, var ve tüm içerik sorgulanan elemanın metin olarak muamele?
Şu anda, ben tek çözüm ya şunlardır:
a) gibi, her sonuç denetleyen bir foreach döngü var:
$result_text = ($result -> strong) ? $result - strong : $result;
b) SimpleXML veya DOMDocument gibi herhangi bir pre-built sınıfa aktarmadan önce HTML dizesi dışında herhangi bir <strong> etiketleri şerit için regex kullanarak.