簡體   English   中英

DocumentFragment 上的 XML/XSL 評估()?

[英]XML/XSL evaluate() on a DocumentFragment?

無論出於何種原因,如果我輸入源 XML,評估它是不是這樣。 但是,如果我使用樣式表轉換 XML 並且它是 DocumentFragment,它會轉到警報(“否”)。 有人知道會發生什么嗎? 也許需要在運行評估之前轉換 DocumentFragment? 但是為了什么? 太感謝了。

doc_trans=xsltProcessor.transformToFragment(doc_xml_source, document);

//var resultDoc=doc_xnl_source;
var resultDoc=doc_trans;

//var path = "/catalog/cd/title"
path="/html/body/table//row";

if (resultDoc.evaluate) {
    alert("yes");
    var nodes = rDoc.evaluate(path, resultDoc, null, XPathResult.ANY_TYPE, null);
    var result = nodes.iterateNext();
    while (result) {
    alert(result.childNodes[0].nodeValue);
        txt += result.childNodes[0].nodeValue + "<br>";
        result = nodes.iterateNext();
    } 
    } else {
 alert("no");


var evaluator = new XPathEvaluator();

//DocumentFragment not a valid node type exception thrown here...

var resulty = evaluator.evaluate("//tbody/tr", resultDoc, null, 
XPathResult.ORDERED_NODE_SNAPSHOT_TYPE);

alert( resulty.snapshotLength);  


    }

我還嘗試將 DocumentFragment (resultDoc) 轉換為 HTML 元素 (zz) ...

var zz=document.createElement("div2");
zz.appendChild(resultDoc);

var evaluator = new XPathEvaluator();

var resulty = evaluator.evaluate("//tbody/tr", zz, null, 
XPathResult.ORDERED_NODE_SNAPSHOT_TYPE);

產生異常......“TypeError:無法讀取未定義的屬性'snapshotLength'”

DocumentFragment 與 NodeList 共享大部分方法,因此 querySelector 和 querySelectorAll、firstChild 等方法與生成的 DocumentFragment 共享。

我想找到轉換后的文檔(A DocumentFragment)中的行數,所以使用 querySelector 而不是評估...

var allDivs = resultDoc.querySelectorAll('tr');

alert(allDivs.length);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM