我正在用 SAX 解析下一种 XML:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<ROOT>
<MESSAGES>
<MESSAGE>
<SUBJECT><![CDATA[Some text]]></SUBJECT>
<BODY><![CDATA[Some text Some Text ]]></BODY>
<RECIPIENTS>
<TO><![CDATA[mail1@domain.com]]></TO>
<TO><![CDATA[mail2@domain2.com]]></TO>
</RECIPIENTS>
</MESSAGE>
<MESSAGE>
<SUBJECT><![CDATA[Some text]]></SUBJECT>
<BODY><![CDATA[Some text1 Some Text2 ]]></BODY>
<RECIPIENTS>
<TO><![CDATA[mail1@domain.com]]></TO>
<TO><![CDATA[mail2@domain2.com]]></TO>
</RECIPIENTS>
</MESSAGE>
<!-- List of 50 MESSAGE ITEM-->
</MESSAGES>
</ROOT>
当方法字符被调用时,
public void characters(char buf[], int offset, int len) throws SAXException
{
String currentValue = new String(buf, offset, len);
System.out.println(currentValue);
}
在某些消息项目中,您收到不正确的值,例如,当我解析标签 BODY 时,我得到'1 Some Text2'当我必须收到'Some text1 Some Text2'并且我找不到丢失的数据甚至打印控制台以这种方法接收的所有数据。
在消息 47 处,总是在相同位置剪切数据(在其他消息中,总是在相同位置)。我认为这个问题可能是因为角色在一瞬间调用了两次或更多,但我刚才说过,我看不到丢失的数据,甚至都打印到控制台。
你能帮我吗?
谢谢