![](/img/trans.png)
[英]How to parse int or double values from text file in java application
[英]Parse Text Values From XML File in Java
所以現在我正在使用 Java 中的 SAX 解析器來解析位於 a.docx 文件存檔中的“document.xml”文件。 以下是我要解析的示例...
樣品 XML 文檔
<w:pStyle w:val="Heading2" />
</w:pPr>
<w:bookmarkStart w:id="0" w:name="_Toc258435889" />
<w:bookmarkStart w:id="1" w:name="_Toc259085121" />
<w:bookmarkStart w:id="2" w:name="_Toc259261685" />
- <w:r w:rsidRPr="00415FD6">
<w:t>Text To Extract</w:t>
</w:r>
<w:bookmarkEnd w:id="0" />
<w:bookmarkEnd w:id="1" />
<w:bookmarkEnd w:id="2" />
現在,我知道如何取出屬性值,這並不難。 但是,我不知道如何進入並解析節點內的實際文本。 有沒有人對此有任何想法或經驗? 先感謝您。
閱讀這篇關於 SAX 解析的文章(它很舊但仍然有效),特別注意characters
方法是如何實現的。 這是非常不直觀的,並且會絆倒每個人,您會因為似乎沒有充分理由而多次致電characters
。
此外,關於 SAX 的 Java 教程對字符方法進行了簡短說明:
解析器不需要一次返回任何特定數量的字符。 解析器一次可以返回從單個字符到數千個字符的任何內容,並且仍然是符合標准的實現。 因此,如果您的應用程序需要處理它看到的字符,明智的做法是讓 characters() 方法將字符累積在 java.lang.StringBuffer 中,並僅在您確定所有字符都已找到時才對它們進行操作。
在您的情況下(沒有混合內容的 XML),這意味着存儲多個 characters() 調用的結果,直到下一次調用 endElement。
請參閱 characters() ContentHandler 方法。 仔細閱讀 javadoc - 當您可能只期望一個時,您可能會收到多個調用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.