无法使用JSOUP </style> </xml>从字符串中删除<xml>和<style>标记

时间:2014-08-21 07:37:18

标签: java xml tags jsoup

我有一个包含以下html代码的字符串:

 ...
 ...
 <style>
   v\:* {behavior:url(#default#VML);}
   o\:* {behavior:url(#default#VML);}
   w\:* {behavior:url(#default#VML);}
   .shape {behavior:url(#default#VML);}
</style>
<xml>
   <w:WordDocument>
   <w:View>Normal</w:View>
   <w:Zoom>0</w:Zoom>
   <w:TrackMoves>false</w:TrackMoves>
</xml>
...
...

当我申请时

string.select("style").remove();
string.select("xml").remove();
似乎没有任何事情发生。我做错了什么?我想完全删除这些标签,包括其内容。

1 个答案:

答案 0 :(得分:0)

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.parser.Parser;

public class Main {

    public static void main(String[] args) {
        try {
            String xmlStr = "<style>" +
                            "v\\:* {behavior:url(#default#VML);}" +
                            "o\\:* {behavior:url(#default#VML);}" +
                            "w\\:* {behavior:url(#default#VML);}" +
                            ".shape {behavior:url(#default#VML);}" +
                            "</style>" +
                            "<xml>" +
                            "<w:WordDocument>" +
                            "<w:View>Normal</w:View>" +
                            "<w:Zoom>0</w:Zoom>" +
                            "<w:TrackMoves>false</w:TrackMoves>" +
                            "</xml>";

            Document doc = Jsoup.parse(xmlStr, "", Parser.xmlParser());
            doc.select("style").remove();
            System.out.println(doc);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

<强>输出

<xml>
 <w:worddocument>
  <w:view>
   Normal
  </w:view>
  <w:zoom>
   0
  </w:zoom>
  <w:trackmoves>
   false
  </w:trackmoves>
 </w:worddocument>   //Added by jsoup during normalization of the xml document
</xml>