0
我用Nokogiri解析一個XML文檔並搜索一個特定的部分並將它分配給一個變量。然後,我搜索該節點,結果似乎來自整個文檔,而不是該小節。XPath結果似乎暗中有更多的數據
實施例:
data = Nokogiri::XML(File.open("something.xml"))
section = data.xpath("//w:tr[.//w:t[contains(., '#something#')]]").
section.xpath("//wp:docPr")
但是,不屬於即使在puts section
輸出上部分返回結果中的XPath。
<w:tr w:rsidR="00B76A6E">
<w:tc>
<w:tcPr>
<w:tcW w:w="9035" w:type="dxa"/>
<w:tcBorders>
<w:top w:val="single" w:sz="6" w:space="0" w:color="0A57A4"/>
</w:tcBorders>
<w:vAlign w:val="center"/>
</w:tcPr>
<w:p w:rsidR="00B76A6E" w:rsidRDefault="00D85F67">
<w:pPr>
<w:jc w:val="left"/>
</w:pPr>
<w:r>
<w:t>#something#</w:t>
</w:r>
</w:p>
</w:tc>
<w:tc>
<w:tcPr>
<w:tcW w:w="1705" w:type="dxa"/>
<w:tcBorders>
<w:top w:val="single" w:sz="6" w:space="0" w:color="0A57A4"/>
</w:tcBorders>
<w:vAlign w:val="center"/>
</w:tcPr>
<w:p w:rsidR="00B76A6E" w:rsidRDefault="00D85F67">
<w:r>
<w:rPr>
<w:noProof/>
</w:rPr>
<w:drawing>
<wp:inline distT="0" distB="0" distL="0" distR="0" wp14:anchorId="79A6C53C" wp14:editId="0DE97A9F">
<wp:extent cx="292608" cy="292608"/>
<wp:effectExtent l="0" t="0" r="0" b="0"/>
<wp:docPr id="924" name="Picture 924"/>
<wp:cNvGraphicFramePr>
<a:graphicFrameLocks xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" noChangeAspect="1"/>
</wp:cNvGraphicFramePr>
<a:graphic xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main">
<a:graphicData uri="http://schemas.openxmlformats.org/drawingml/2006/picture">
<pic:pic xmlns:pic="http://schemas.openxmlformats.org/drawingml/2006/picture">
<pic:nvPicPr>
<pic:cNvPr id="0" name="S-sm.png"/>
<pic:cNvPicPr/>
</pic:nvPicPr>
<pic:blipFill>
<a:blip r:embed="rId20" cstate="print">
<a:extLst>
<a:ext uri="{28A0092B-C50C-407E-A947-70E740481C1C}">
<a14:useLocalDpi xmlns:a14="http://schemas.microsoft.com/office/drawing/2010/main" val="0"/>
</a:ext>
</a:extLst>
</a:blip>
<a:stretch>
<a:fillRect/>
</a:stretch>
</pic:blipFill>
<pic:spPr>
<a:xfrm>
<a:off x="0" y="0"/>
<a:ext cx="292608" cy="292608"/>
</a:xfrm>
<a:prstGeom prst="rect">
<a:avLst/>
</a:prstGeom>
</pic:spPr>
</pic:pic>
</a:graphicData>
</a:graphic>
</wp:inline>
</w:drawing>
</w:r>
</w:p>
</w:tc>
</w:tr>
這很混亂。我試圖得到id
在<wp:DocPr>
標籤的價值,但它返回一個像這樣的很多人:
section.xpath("//wp:docPro")
<wp:docPr id="225" name="Picture 225"/>
<wp:docPr id="226" name="Picture 226"/>
<wp:docPr id="227" name="Picture 227"/>
<wp:docPr id="228" name="Picture 228"/>
<wp:docPr id="924" name="Picture 924"/>
<wp:docPr id="926" name="Picture 926"/>
<wp:docPr id="925" name="Picture 925"/>
<wp:docPr id="927" name="Picture 927"/>
<wp:docPr id="229" name="Picture 229"/>
<wp:docPr id="230" name="Picture 230"/>
<wp:docPr id="346" name="Picture 6"/>
<wp:docPr id="17" name="Picture 6"/>
<wp:docPr id="3" name="Picture 6"/>
<wp:docPr id="7" name="Picture 6"/>
<wp:docPr id="255" name="Picture 6"/>
<wp:docPr id="304" name="Picture 6"/>
<wp:docPr id="313" name="Picture 6"/>
請提供XML的MINIMAL示例。這意味着證明問題的最低必要條件。除此之外的任何事情都會浪費我們的時間,試圖幫助你。另外,你的XML無效。請確保它是正確的,因爲在分析和嘗試回答時可能會導致問題。 –
在XML中不可能有「祕密數據」 - 它是開放的,可查看的,它立即告訴你XPath本身存在問題。 –
任何額外的數據關係的xpath或節點也可能是由於一些額外的jQuery在那裏 –