note 87471 added to book.dom
| From: | fantasyman3000 at gmail dot com | Date: | Sat, 06 Dec 2008 13:37:15 +0000 |
| Subject: | note 87471 added to book.dom | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-147749@lists.php.net to get a copy of this message | ||
In response to "simlee at indiana dot edu",
- First of all thanks for sharing your funciton.
- It didn't work for me so i rewrite it from scratch using different method.
Here is the new version, hope it helps someone :
<?php
/**
* result sample : /html[1]/body[1]/span[1]/fieldset[1]/div[1]
* @return string
*/
function getNodeXPath( $node ) {
$result='';
while ($parentNode = $node->parentNode) {
$nodeIndex=-1;
$nodeTagIndex=0;
do {
$nodeIndex++;
$testNode = $parentNode->childNodes->item( $nodeIndex );
if ($testNode->nodeName==$node->nodeName and
$testNode->parentNode->isSameNode($node->parentNode) and
$testNode->childNodes->length>0) {
//echo
"{$testNode->parentNode->nodeName}-{$testNode->nodeName}-{}<br/>";
$nodeTagIndex++;
}
} while (!$node->isSameNode($testNode));
$result="/{$node->nodeName}[{$nodeTagIndex}]".$result;
$node=$parentNode;
};
return $result;
}
?>
By Sina.Salek.ws
----
Server IP: 79.132.192.3
Probable Submitter: 91.184.76.86
----
Manual Page -- http://www.php.net/manual/en/book.dom.php
Edit -- https://master.php.net/note/edit/87471
Del: integrated -- https://master.php.net/note/delete/87471/integrated
Del: useless -- https://master.php.net/note/delete/87471/useless
Del: bad code -- https://master.php.net/note/delete/87471/bad+code
Del: spam -- https://master.php.net/note/delete/87471/spam
Del: non-english -- https://master.php.net/note/delete/87471/non-english
Del: in docs -- https://master.php.net/note/delete/87471/in+docs
Del: other reasons-- https://master.php.net/note/delete/87471
Reject -- https://master.php.net/note/reject/87471
Search -- https://master.php.net/manage/user-notes.php