我提前为我的英语道歉。 我在将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;
}
}
}