Solved

java dom - parsing/updating doc

Posted on 2008-10-09
4
162 Views
Last Modified: 2013-11-23
I've the following code and this html file.  I'm trying to locate the <head> tag and add text to it, however it isn't working.  Could someone please take a look at my code and tell me what is missing?  Thanks.

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html"/>
<meta http-equiv="Content-Style-Type" content="text/css"/>
<title>a title</title>
</head>
<body>
<p>some text</p>
</body>
</html>

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
	    try
	    {
		DocumentBuilder db = dbf.newDocumentBuilder();
	    Document doc = db.parse(new File("test.html"));
	    
	
	String newinfo = "text to be added";
 
	 Element root = doc.getDocumentElement();
	    NodeList rootlist = root.getChildNodes();
	    
	    for(int i=0; i<rootlist.getLength(); i++) 
	    {
	        Element head = (Element)rootlist.item(i);
	         NodeList namelist = head.getChildNodes();
	        Text headtext = (Text)namelist.item(0);
	        String oldname = headtext.getData();
	        if(oldname.equals(newinfo)) 
	        {
	            Element head2 = (Element)namelist.item(1);
	            NodeList namelist2 = head.getChildNodes();
	            Text headtext2 = (Text)namelist.item(0);
	            headtext.setData(newinfo);
	        }
	    }
	    }
	    catch (Exception e)
	    {
	    	e.printStackTrace();
	    }

Open in new window

0
Comment
Question by:newbieal
  • 2
  • 2
4 Comments
 
LVL 6

Expert Comment

by:wwnosal
ID: 22681150
What exactly do you want to achieve.. Show example of an output..
0
 
LVL 4

Author Comment

by:newbieal
ID: 22681177
The html file has a <head> tag.  I want to add text in between its beginning and ending tag.

<head> Some Text </head>
0
 
LVL 6

Accepted Solution

by:
wwnosal earned 500 total points
ID: 22681401
Try like this:


DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance ( );
    try {
      DocumentBuilder db = dbf.newDocumentBuilder ( );
      Document doc = db.parse ( new File ( "test.html" ) );
 
      String newinfo = "text to be added";
 
      Element root = doc.getDocumentElement ( );
      // NodeList list = doc.getElementsByTagName ( "head" );
      System.out.println ( root.getNodeName ( ) );
      NodeList list = root.getChildNodes ( );
      for ( int i = 0; i < list.getLength ( ); i++ ) {
        if ( list.item ( i ).getNodeName ( ).equals ( "head" ) ) {
          list.item ( i ).setTextContent ( newinfo );
        }
      }
      XMLSerializer serializer = new XMLSerializer ( );
      serializer.setOutputCharStream ( new java.io.FileWriter ( "test.html" ) );
      serializer.serialize ( doc );
 
    }
    catch ( Exception e ) {
      e.printStackTrace ( );
    }

Open in new window

0
 
LVL 4

Author Comment

by:newbieal
ID: 22681697
Awesome, exactly what I needed, thank you so much!
0

Featured Post

SharePoint Admin?

Enable Your Employees To Focus On The Core With Intuitive Onscreen Guidance That is With You At The Moment of Need.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Problem to Alipay 10 72
Html Table Looping (part 2) 5 35
jsp error 6 48
IBM TS2900 (3572) Tape Autoloader Java? 12 61
INTRODUCTION Working with files is a moderately common task in Java.  For most projects hard coding the file names, using parameters in configuration files, or using command-line arguments is sufficient.   However, when your application has vi…
Java Flight Recorder and Java Mission Control together create a complete tool chain to continuously collect low level and detailed runtime information enabling after-the-fact incident analysis. Java Flight Recorder is a profiling and event collectio…
Viewers will learn about the different types of variables in Java and how to declare them. Decide the type of variable desired: Put the keyword corresponding to the type of variable in front of the variable name: Use the equal sign to assign a v…
Viewers will learn about basic arrays, how to declare them, and how to use them. Introduction and definition: Declare an array and cover the syntax of declaring them: Initialize every index in the created array: Example/Features of a basic arr…

730 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question