![](/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.