Jdom HIERARCHY_REQUEST_ERR

时间:2015-05-19 17:40:05

标签: java dom

我提前为我的英语道歉。 我在将HTML转换为XML时遇到问题。 当我的程序在网站上找到很多链接时,在控制台中我看到了HIERARCHY_REQUEST_ERR。这个相同的代码适用于网站的标题,但不适用于链接...... 错误在:

myLink = myDoc.createElement("a");            
 myDoc.appendChild(myLink);

我该如何解决?

我的代码

    import javax.swing.text.*;
import javax.swing.text.html.*;
import javax.swing.text.html.parser.*;

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Text;

import java.io.*;
import java.net.*;
import java.util.*;

public class TagReplacer extends HTMLEditorKit.ParserCallback {
    boolean rTitle = false;
    boolean rLink = false;
    Document myDoc ;    
    Text myText;
    Element myTitle;    
    Element myLink;

    public TagReplacer(Document myDoc) {
    this.myDoc = myDoc; 

    }

    public void handleText(char[] text, int position) {

        if(rLink == true){
            System.out.println("Odsyłacz: "+ String.valueOf(text));    

            myLink = myDoc.createElement("a");            
            myDoc.appendChild(myLink);
           // myText = myDoc.createTextNode("value");
            //myLink.appendChild(myText);    

        }

        if(rTitle == true){
            System.out.println("Title: "+ String.valueOf(text));            


            myTitle = myDoc.createElement("title");                   
                myDoc.appendChild(myTitle);
                myText = myDoc.createTextNode(String.valueOf(text));
                myTitle.appendChild(myText);

        }
    }  
  public void handleStartTag(HTML.Tag tag, MutableAttributeSet attributes, int position)
  {
      if(tag == HTML.Tag.A)
        {
            rLink = true;                
            Enumeration e = attributes.getAttributeNames( );
            while (e.hasMoreElements( ))
            {
                Object name = e.nextElement( );
                String value = (String) attributes.getAttribute(name);
                if(name==HTML.Attribute.HREF){
                //System.out.println("HREF = " + value);
                }
            }

        }
      if(tag == HTML.Tag.TITLE)
        {
            rTitle = true;          

        }
  }

  public void handleEndTag(HTML.Tag tag, int position)
  {
      if(tag == HTML.Tag.A)
        {
            rLink = false;                

        }
      if(tag == HTML.Tag.TITLE)
        {
            rTitle = false;                

        }
  }
    }

0 个答案:

没有答案