有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

无验证的java jsoup解析

import org.jsoup.Jsoup;
import org.jsoup.nodes.*;
import org.jsoup.select.*;

public class My_Test {
    public static void main(String[] args) throws Exception {
        String xml =    "<span id=sectionLinesDetail>\n" +
                        "       <tr id=123>\n" +
                        "           <td>text</td>\n" +
                        "       </tr>\n" +
                        "</span>";
        Document doc = Jsoup.parse(xml);
        Elements e_span = doc.select("span[id=sectionLinesDetail]");
        System.out.println(e_span);
    }
}

我希望得到这样的结果:

< span id=sectionLinesDetail> < tr id=123> < td>text< /td> < /tr> < /span>

但我得到的是这样的

< span id=sectionLinesDetail> text < /span>

是否有跳过验证的方法

谢谢


共 (1) 个答案

  1. # 1 楼答案

    A^{}是您在这里需要的

    您只需将解析行更改为:

    Document doc = Jsoup.parse(xml, "", Parser.xmlParser());
    

    我对你的代码做了一些修改,但问题的关键只是这一行——其他的都是装饰性的

    String xml = "<span id=sectionLinesDetail>\n"
            + "       <tr id=\"123\">\n"
            + "           <td>text</td>\n"
            + "       </tr>\n"
            + "</span>";
    
    Document doc = Jsoup.parse(xml, "", Parser.xmlParser()); // The line as mentioned above
    Element span = doc.select("span#sectionLinesDetail").first(); // the '#' means "with id"
    
    
    System.out.println(span);
    

    输出:

    <span id="sectionLinesDetail"> 
     <tr id="123"> 
      <td>text</td> 
     </tr> </span>