使用DOM文档对象的时候,怎样指定文档类型?
就是添加
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
就是添加
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
这个声明是在html里面的,现在我把html转为xml,不知道在xml文件哪里添加这句话,才可以用xsl样式正确
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.FactoryConfigurationError;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.io.XMLWriter;
import org.xml.sax.SAXException;public class XmlTool {
public XmlTool(){
}
public static org.w3c.dom.Document loadFromFile(String file)
throws FactoryConfigurationError, ParserConfigurationException, IOException, SAXException{
return DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(file);
}
public static org.w3c.dom.Document loadIgnoringDocFromFile(String file) throws Exception{
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
factory.setIgnoringComments(true);
return factory.newDocumentBuilder().parse(new File(file));
}
/**
* FUNC:将document对象,转换为字符串
* @param doc Document对象
* @param encodeing 编码格式
* @return
* @throws Exception
*/
public static String changeDocToString(org.w3c.dom.Document doc ,String encodeing)
throws Exception
{
if(doc == null) return "";
TransformerFactory tf = TransformerFactory.newInstance();
Transformer t = tf.newTransformer();
t.setOutputProperty(OutputKeys.ENCODING, encodeing);//解决中文问题,只能用gb2312,gbk都有问题
ByteArrayOutputStream bos = new ByteArrayOutputStream();
t.transform(new javax.xml.transform.dom.DOMSource(doc), new StreamResult(bos));
return bos.toString();
}
// public static Document loadIgnoringDocFromFile(String file)
// throws Exception {
// DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
// factory.setIgnoringComments(true);
//// return factory.newDocumentBuilder().parse(new File(file));
// return (Document) factory.newDocumentBuilder().parse(new File(file));
// } public String myAsXml(Document document) {
String text = document.asXML();
return text;
} public Document str2document(String text) {
// text = "<person> <name>James</name> </person>";
Document document = null;
try {
document = DocumentHelper.parseText(text);
} catch (DocumentException e) {
e.printStackTrace();
}
return document;
} public void document2xmlFile(Document document) throws IOException {
// 写入文件
XMLWriter writer = new XMLWriter(new FileWriter("E:\\eagle\\jms\\myExc.xml"));
writer.write(document);
writer.close();
// 以一种优雅的格式写入System.out对象
// OutputFormat format = OutputFormat.createPrettyPrint();
// writer = new XMLWriter( System.out, format );
// writer.write( document );
//
// // 以一种紧凑的格式写入System.out对象
// format = OutputFormat.createCompactFormat();
// writer = new XMLWriter( System.out, format );
// writer.write( document );
}
}
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
</xsl:stylesheet>