Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中解析XML文件中的文本值_Java_Xml_Parsing_Sax_Textnode - Fatal编程技术网

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

在Java中解析XML文件中的文本值,java,xml,parsing,sax,textnode,Java,Xml,Parsing,Sax,Textnode,所以现在我使用Java中的SAX解析器来解析位于.docx文件存档中的document.xml文件。下面是我试图解析的示例 示例XML文档 现在,我知道如何提取属性值,这并不难。但是,我不知道如何进入并解析节点中的实际文本。有人对此有任何想法或经验吗?提前感谢。请参阅characters ContentHandler方法。仔细阅读javadoc-当您可能只需要一个调用时,您可以得到多个调用。请参阅characters ContentHandler方法。仔细阅读javadoc——当您可能只需要一个

所以现在我使用Java中的SAX解析器来解析位于.docx文件存档中的document.xml文件。下面是我试图解析的示例

示例XML文档


现在,我知道如何提取属性值,这并不难。但是,我不知道如何进入并解析节点中的实际文本。有人对此有任何想法或经验吗?提前感谢。

请参阅characters ContentHandler方法。仔细阅读javadoc-当您可能只需要一个调用时,您可以得到多个调用。

请参阅characters ContentHandler方法。仔细阅读javadoc——当您可能只需要一个调用时,您可能会收到多个调用。

阅读它很旧,但仍然有效,请特别注意characters方法的实现方式。这是非常不直观和绊倒每个人,你会得到多个调用字符似乎没有什么好的理由

还简要说明了字符方法:

解析器不需要一次返回任何特定数量的字符。解析器一次最多可以返回几千个字符中的任何内容,并且仍然是符合标准的实现。因此,如果您的应用程序需要处理它看到的字符,明智的做法是让characters方法在java.lang.StringBuffer中累积字符,并仅在确定已找到所有字符时对其进行操作

对于没有混合内容的XML,这意味着在下一次调用endElement之前存储多个字符调用的结果。

读取它是旧的,但仍然有效,请特别注意characters方法的实现方式。这是非常不直观和绊倒每个人,你会得到多个调用字符似乎没有什么好的理由

还简要说明了字符方法:

解析器不需要一次返回任何特定数量的字符。解析器一次最多可以返回几千个字符中的任何内容,并且仍然是符合标准的实现。因此,如果您的应用程序需要处理它看到的字符,明智的做法是让characters方法在java.lang.StringBuffer中累积字符,并仅在确定已找到所有字符时对其进行操作


在您的例子中,没有混合内容的XML意味着在下次调用endElement之前存储多个字符调用的结果。

Wow,这实际上非常有用。我现在正在混乱地使用characters方法,我正在节点中获取文本。现在我只需要弄清楚如何构造它,将它限制在我特别想要的范围内。不过非常感谢!哇,这真的很有帮助。我现在正在混乱地使用characters方法,我正在节点中获取文本。现在我只需要弄清楚如何构造它,将它限制在我特别想要的范围内。不过非常感谢!
<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" />