Xml节点文本在有滑稽字符时会导致问题

Bla*_*man -3 java xml sax xerces

我在以下事件中设置xml元素内的字符:

 public void characters(char[] ch, int start, int length) {
        elementText = new String(ch, start, length);
    }
Run Code Online (Sandbox Code Playgroud)

其中elementText是一个String.

<client-key>#&lt;ABC::DEF::GHI:0x102548f78&gt;</client-key>
Run Code Online (Sandbox Code Playgroud)

我将此xml数据加载到java对象中,我的objects属性具有以下值:

 '\n        '
Run Code Online (Sandbox Code Playgroud)

现在,如果我更改<client-key>上面元素中的文本,它在我的对象属性中就可以了.

我需要以某种方式处理某些编码问题吗?

public void endElement(String uri, String localName, String qName) {

       if (qName.equals("client-key")) {
            client.setClientKey(elementText);
        }

}
Run Code Online (Sandbox Code Playgroud)

Old*_*eon 11

这可能是你的xml整理后会得到的结果:

<client-key>
    #&lt;ABC::DEF::GHI:0x102548f78&gt;
</client-key>
Run Code Online (Sandbox Code Playgroud)

请参阅ContentHandler

字符
...
解析器将调用此方法来报告每个字符数据块.SAX解析器可以在一个块中返回所有连续的字符数据,或者它们可以将它分成几个块 ; ...

你最好使用类似的东西:

public void characters(char[] ch, int start, int length) {
  // Note the +=
  elementText += new String(ch, start, length);
}

public void endElement(String uri, String localName, String qName) {

  if (qName.equals("client-key")) {
    client.setClientKey(elementText);
  }
  elementText = "";
}
Run Code Online (Sandbox Code Playgroud)