0

私はXMLStreamReaderxmlの一部を解析するために使用しています:

XMLStreamReader rd = XMLInputFactory.newInstance().createXMLStreamReader(io_xml, "UTF-8");

...

if (eventType == XMLStreamConstants.START_ELEMENT) {
  String name = rd.getLocalName();
  if (name.equals("key")) {
    String val = rd.getElementText();
  }
}

問題は、次の文字列の読み取りがうまくいかないことです。"<key>cami%C3%B5es%2Babc</key>"

org.junit.ComparisonFailure: 
expected:<cami[%C3%B5es%]2Babc> but was:<cami[ C3 B5es ]2Babc>

XML 内で何か特別なことをする必要がありますか? セクション内にすべてを配置しようとしましたCDATAが、同じエラーが発生します。


「通常の」パーサーを使用すると、すべてが機能します。

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
InputSource is = new InputSource(new StringReader(xml));
Document parse = builder.parse(is);
String value = parse.getFirstChild().getTextContent();
...
4

1 に答える 1

0

私はそれを考え出した。問題は、コードの別のセクションにありました。setterだけではありませんでしたset

于 2013-09-20T09:57:02.833 に答える