java - update text in HTML page using parser -


i gets error in middlebitparent.replacewith(nodespan); in following code written in jsoup navigate html doc , change background color of word "in"

elements divs= doc.select("div");           for(element div : divs)           {                if (div.hastext())                 {                     int pos = div.text().indexof("in");                     out.println(pos);                     if (pos >= 0)                         {                         element span = doc.createelement("span");                         span.attr("style", "background-color: yellow");                         textnode text = new textnode(div.text(),"");                       //  string[] words = div.split("\\s", 4);                      textnode middlebit = text.splittext(4);                      textnode endbit=text.splittext("in".length());                                  node middleclone = middlebit.clone();                       span.appendchild(middleclone);                       node nodespan=span.clone();                       node middlebitparent = middlebit.parent();                       middlebitparent.replacewith(nodespan); 

the error says

java.lang.nullpointerexception     org.apache.jsp.page1_jsp._jspservice(page1_jsp.java:177)     org.apache.jasper.runtime.httpjspbase.service(httpjspbase.java:70)     javax.servlet.http.httpservlet.service(httpservlet.java:717)     org.apache.jasper.servlet.jspservletwrapper.service(jspservletwrapper.java:374)     org.apache.jasper.servlet.jspservlet.servicejspfile(jspservlet.java:342)     org.apache.jasper.servlet.jspservlet.service(jspservlet.java:267)     javax.servlet.http.httpservlet.service(httpservlet.java:717) 

update:

is there parser can update text in text node in easy way

    public static void main(string[] arg){          htmlcleaner cleaner = new htmlcleaner();          try {              tagnode nodes = cleaner.clean(new file("c:/test.xml"));              object[] objects = nodes.evaluatexpath("//div/a[text(.,'in')]");              system.out.println(((tagnode)objects[0]).gettext());          } catch (exception e) {             e.printstacktrace();         }     } 

you can try htmlcleaner support xpath more useful in case. jsoup's css selector cannot filter text node.


Comments

Popular posts from this blog

c# - SharpSVN - How to get the previous revision? -

c++ - Is it possible to compile a VST on linux? -

url - Querystring manipulation of email Address in PHP -