Mam ciąg html, który zawiera dokładnie jeden element w nim. Przykład:Modyfikuj atrybut html za pomocą php
<a href="http://www.test.com" rel="nofollow external">test</a>
w PHP muszę sprawdzić, czy rel zawiera zewnętrznego a jeśli tak, to zmodyfikować href i zapisać ciąg.
Szukałem węzłów DOM i obiektów. Ale wydają się być zbyt wiele dla tylko jednego elementu A, ponieważ muszę iterować, aby uzyskać węzły html i nie jestem pewien, jak przetestować, czy istnieje rel i zawiera zewnętrzny.
$html = new DOMDocument();
$html->loadHtml($txt);
$a = $html->getElementsByTagName('a');
$attr = $a->item(0)->attributes();
...
W tym momencie otrzymam listę NodeMapList, która wydaje się być narzutem. Czy jest jakiś prostszy sposób na to czy powinienem to zrobić z DOM?
Gdy mamy do czynienia z DOM masz dwie opcje: 1) użycie natywnego DOM parser 2) Za pomocą wyrażenia regularnego (co jest na górze) – Yang
dalej. Użyj 'DOMDocument()' do manipulowania – Yang
Nikt nie powinien używać surowych metod DOM do manipulacji. Rozważ phpQuery lub QueryPath itp., Aby zmniejszyć żmudny schemat. – mario