我有一個簡單的問題要問你。我想計算繁重的 XML 檔案中包含多少個節點。
例如:(在這種情況下,Xpath 運算式應該給我橋節點的計數為 1)
<?xml version="1.0" standalone="yes"?>
<full_info>
<bridge>
<FFF3>12314</FFF3>
...
</bridge>
</full_info>
這是我的 Xpath 運算式:
count(//full_info/bridge)
但是此命令不斷給出該錯誤:
XError:焦點不存在;代碼:XPDY0002
如何解決這個問題呢?請幫我
uj5u.com熱心網友回復:
一般來說,傳統的 XPath 不是處理巨大(輸入 GB 的)XML 檔案的好工具,因此您可能想要研究更高級的技術,例如帶有流的 XSLT 3,其中 Saxon 10 EE 或 SaxonCS 允許運行
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="3.0">
<xsl:output method="text"/>
<xsl:mode streamable="yes"/>
<xsl:template match="/">
<xsl:value-of select="count(//full_info/bridge)"/>
</xsl:template>
</xsl:stylesheet>
并且不會構建完整的記憶體樹,而是流過并計算節點。
另一種選擇是查看 BaseX 或 eXist-db 或其他 XML 資料庫系統,在那里您需要先將巨大的 XML 放入 db 中,然后希望用于計算節點的 XPath 或 XQuery 不會導致記憶體不足問題.
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/389293.html
