簡體   English   中英

從 Java 中的 XML 文件中解析文本值

[英]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.

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