我有一个包含表格,段落等的大型XML文件(来自Microsoft Word)。我试图抓住两个元素之间的所有XML。例如,我想抓住这两个
之间的所有XML$(document).ready(function(){
var x1;
x1 = +localStorage.getItem("x1");
$("#r1").html("Your rating: " + x1);
$("#rating1 span").click(function() {
var x1 = 5 - $(this).index();
$("#r1").html("Your rating: " + x1);
localStorage.setItem("x1", x1);
});
});
我怎样才能让Nokogiri抓住#StartHere#和#StopHere#之间的所有XML,包括包含此文本的那些元素?我想以某种方式打电话给<w:p w:rsidR="00C82C88" w:rsidRDefault="00265695">
<w:r>
<w:t>#StartHere#</w:t>
</w:r>
</w:p>
a whole bunch of XML
<w:p w:rsidR="00C82C88" w:rsidRDefault="00265695" w:rsidP="00265695">
<w:pPr>
<w:pStyle w:val="Caption"/>
</w:pPr>
<w:r>
<w:t xml:space="preserve">Figure </w:t>
</w:r>
<w:r w:rsidR="00F044F8">
<w:fldChar w:fldCharType="begin"/>
</w:r>
<w:r w:rsidR="00F044F8">
<w:instrText xml:space="preserve"> SEQ Figure \* ARABIC </w:instrText>
</w:r>
<w:r w:rsidR="00F044F8">
<w:fldChar w:fldCharType="separate"/>
</w:r>
<w:r>
<w:rPr>
<w:noProof/>
</w:rPr>
<w:t>1</w:t>
</w:r>
<w:r w:rsidR="00F044F8">
<w:rPr>
<w:noProof/>
</w:rPr>
<w:fldChar w:fldCharType="end"/>
</w:r>
<w:r>
<w:t>: #StopHere#</w:t>
</w:r>
</w:p>
。
我可以通过查找文件找到这些要点:
extracted_data = document[from..stop]
但是需要弄清楚我怎么能说文件[start..stop]来抓住所有东西(包括那些)以及它之间。
答案 0 :(得分:2)
此XPath ,
//node()[ preceding::w:p[w:r/w:t[.='#StartHere#']]
and following::w:p[w:r/w:t[.=': #StopHere#']]]
将选择包含标记文本的两个段落之间的所有节点。
在Nokogiri :doc.xpath("
在此处插入XPath ")