标签:选择 格式 static rom result 微软雅黑 name mic alt
<![CDATA[
内容]]>或者转义字符:< script >子元素< /script >
简称PI (processing instruction)。处理指令用来指挥解析引擎怎样解析XML文档内容。比如,在XML文档中能够使用xml-stylesheet指令,通知XML解析引擎。应用css文件显示xml文档内容。<?xml-stylesheet type="text/css" href="1.css"?>
处理指令必须以“<?”作为开头。以“?>”作为结尾。XML声明语句就是最常见的一种处理指令。
通过 DTD,您的每个 XML 文件均可携带一个有关其自身格式的描写叙述。通过 DTD,独立的团体可一致地使用某个标准的 DTD 来交换数据。而您的应用程序也可使用某个标准的 DTD 来验证从外部接收到的数据。您还能够使用 DTD 来验证您自身的数据。
l 使用外部DTD SYSTEM
l 使用公共DTD PUBLIC
<!ATTLIST 元素名称 属性名 属性类型 属性约束>
属性类型 CDATA (字符串)
属性约束 #REQUIRED 这个代表属性必须有。
#FIXED 属性值的绑定
<?xml version="1.0" encoding="UTF-8" standalone="no"?
><!-- 使用内容的dtd --><books>
<bookkuan="">
<bookname>红楼梦</bookname>
<author>小张</author>
<value>15.6</value></book>
<bookkuan="">
<bookname>爱我是</bookname>
<author>撒地方</author>
</book>
</books>
publicclass test1 {
/**
* @param args
* @throws ParserConfigurationException
* @throws IOException
* @throws SAXException
* @throws TransformerException
*/
publicstaticvoid main(String[] args)throwsParserConfigurationException,
SAXException,IOException,TransformerException{
// addElement();
// updateText();
deleteElement();
}
/**删除元素
* @throws ParserConfigurationException
* @throws SAXException
* @throws IOException
* @throws TransformerException
* @throws TransformerFactoryConfigurationError
* @throws TransformerConfigurationException
*/
privatestaticvoid deleteElement()throwsParserConfigurationException,SAXException,IOException,TransformerConfigurationException,TransformerFactoryConfigurationError,TransformerException{
Document document = getDocument("dtd/books.xml");
NodeList nodeList=document.getElementsByTagName("author");
Element element=(Element) nodeList.item(0);
//通过父亲来删除子节点
element.getParentNode().removeChild(element);
domToFile(document);
}
/**加入元素
* @throws ParserConfigurationException
* @throws SAXException
* @throws IOException
* @throws TransformerFactoryConfigurationError
* @throws TransformerConfigurationException
* @throws TransformerException
*/
privatestaticvoid addElement()throwsParserConfigurationException,
SAXException,IOException,TransformerFactoryConfigurationError,
TransformerConfigurationException,TransformerException{
Document document = getDocument("dtd/books.xml");
Element element= document.createElement("value");
element.setTextContent("15.6");
document.getElementsByTagName("book").item(0).appendChild(element);
domToFile(document);
}
//改动
publicstaticvoid updateText()throwsParserConfigurationException,SAXException,IOException,TransformerConfigurationException,TransformerFactoryConfigurationError,TransformerException{
Document document = getDocument("dtd/books.xml");
NodeList nodeList=document.getElementsByTagName("author");
Element element=(Element) nodeList.item(1);
element.setTextContent("小红");
domToFile(document);
}
/**由于是载入到内存。所以须要回写到xml文件里
* @param document
* @throws TransformerFactoryConfigurationError
* @throws TransformerConfigurationException
* @throws TransformerException
*/
privatestaticvoid domToFile(Document document)
throwsTransformerFactoryConfigurationError,
TransformerConfigurationException,TransformerException{
TransformerFactory factory=TransformerFactory.newInstance();
Transformer tf=factory.newTransformer();
tf.transform(newDOMSource(document),newStreamResult("dtd/books.xml"));
}
/**得到document
* @param file
* @return
* @throws ParserConfigurationException
* @throws SAXException
* @throws IOException
*/
publicstaticDocument getDocument(String file)
throwsParserConfigurationException,SAXException,IOException{
// TODO Auto-generated method stub
// 解析器工厂
DocumentBuilderFactory builderFactory =DocumentBuilderFactory
.newInstance();
// 解析器
DocumentBuilder db = builderFactory.newDocumentBuilder();
Document document =(Document) db.parse(file);
return document;
}
}
// 1.得到sax解析器工厂
SAXParserFactory factory =SAXParserFactory.newInstance();
// 2.得到sax解析器
SAXParser parse = factory.newSAXParser();
// parse.parse("xml/books.xml", new MyHandle()); //这句话能够替换以下的三句
// 3.得到读取器
XMLReader reader = parse.getXMLReader();
// 4设置读取器的事件处理器
reader.setContentHandler(newMyHandle());
// 5.真正读取文件
reader.parse("xml/books.xml");
classMyHandleextendsDefaultHandler{
@Override
publicvoid startDocument()throwsSAXException{
System.out.println("start document");
}
@Override
publicvoid startElement(String uri,String localName,String qName,
Attributes attributes)throwsSAXException{
// qName能够得到元素名称
// 能够通过 attributes得到当前元素的全部属性
System.out.println("<"+ qName +">");
}
@Overrid
publicvoid characters(char[] ch,int start,int length)
throwsSAXException{
// 能够得到元素中的文本信息
System.out.println(newString(ch, start, length));
}
@Override
publicvoid endElement(String uri,String localName,String qName)
throwsSAXException{
System.out.println("<"+ qName +">");
}
@Override
publicvoid endDocument()throwsSAXException{
System.out.println("endDocument");
}
Dom4j是由早期开发JDOM的人分离出来而后独立开发的。
与JDOM不同的是,dom4j使用接口和抽象基类,尽管Dom4j的API相对要复杂一些,但它提供了比JDOM更好的灵活性
Dom4j是一个非常优秀的Java XML API,具有性能优异、功能强大和极易使用的特点。
如今非常多软件採用的Dom4j,比如Hibernate。包含sun公司自己的JAXM也用了Dom4j
使用Dom4j开发,需下载dom4j对应的jar文件
标签:选择 格式 static rom result 微软雅黑 name mic alt
原文地址:http://www.cnblogs.com/tlnshuju/p/6958757.html