$(function(){ function evalXPath($xpath, $html_input) { var $node = $($.parseXML($html_input.val())); var xpathExpr = $xpath.val(); console.log('expr', xpathExpr); return $node.xpath(xpathExpr); } function nodeToString(node) { if (node.nodeType == 2) return node.value; if (node.nodeType == 3) return node.wholeText; if (node.nodeType == 8) return ""; if (node.outerHTML === undefined) return node; return node.outerHTML; } function evalXPathUpdateResult() { var $xpath = $(this); var target_id = $xpath.data('target'); var $html_input = $('#html_input-' + target_id); var $html_output = $('#html_output-' + target_id); try { var nodes = evalXPath($xpath, $html_input); var htmlNodes = $.map(nodes, function(node){ return $("