无法读取XML

时间:2015-12-10 15:39:53

标签: java xml cdata dom4j

我无法使用DOM4j库读取CDATA内容

<notes>

<note>
<![CDATA[
    something
]]>
</note>

我尝试过类似的事情:

if(element.getName().equalsIgnoreCase("notes")){
                List notes = element.elements();
                for (int inotes = 0; inotes<notes.size(); inotes++) {
                    String content = ""; // ??????
                }
            }

1 个答案:

答案 0 :(得分:0)

您可以通过getStringValue获取CDATA内容

如果您只有一个音符元素:

String xml="<notes>\r\n" + 
        "\r\n" + 
        "<note>\r\n" + 
        "<![CDATA[\r\n" + 
        "qslkdfjqoisdèufç_rkjsdqfmlq_zds"+
        "_èçé\"hc<<op<àç\">>>x>pciu\"éêù!x;%xkm<qknc"+
        "    something\r\n" + 
        "]]>\r\n" + 
        "</note></notes>";

// STRING => DOCUMENT
Document docu=DocumentHelper.parseText(xml);

// SELECT UNIQUE 
Node nd=docu.selectSingleNode("//note");

// CONTENT
String value=nd.getStringValue();
System.out.println("VALUE="+value);

如果您有多个音符标签,请使用:

List<Node> notes = docu.selectNodes( "//note", "." ,true);
for (Node nd: notes)
    {