-
SAX解析开始 ===========开始遍历某一本书的内容============ book元素的第1个属性名是:id---属性值是:1 节点名是:name---节点值是:冰与火之歌 节点名是:author---节点值是:乔治马丁 节点名是:year---节点值是:2014 节点名是:price---节点值是:89 =========结束遍历某一本书的内容:============ ===========开始遍历某一本书的内容============ book元素的第1个属性名是:id---属性值是:2 节点名是:name---节点值是:安徒生童话 节点名是:year---节点值是:2004 节点名是:price---节点值是:77 节点名是:language---节点值是:English =========结束遍历某一本书的内容:============ SAX解析结束 java.io.IOException: 系统找不到指定的路径。 at java.io.WinNTFileSystem.createFileExclusively(Native Method) at java.io.File.createNewFile(Unknown Source) at com.imooc.test.SAXTest.createXML(SAXTest.java:66) at com.imooc.test.SAXTest.main(SAXTest.java:94)查看全部
-
package com.imooc.test; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.util.ArrayList; import javax.swing.text.html.parser.Parser; import javax.xml.parsers.ParserConfigurationException; import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXParserFactory; import javax.xml.transform.OutputKeys; import javax.xml.transform.Result; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerConfigurationException; import javax.xml.transform.sax.SAXTransformerFactory; import javax.xml.transform.sax.TransformerHandler; import javax.xml.transform.stream.StreamResult; import org.xml.sax.SAXException; import com.imooc.SAXParserHandler; import com.imooc.entity.Book;查看全部
-
public class SAXTest { public ArrayList<Book> parseXML() { // 获取一个SaxParserFactory的实例 SAXParserFactory factory = SAXParserFactory.newInstance(); // 通过foctory获取SAXParser实例 SAXParserHandler handler = null; try { SAXParser parser = factory.newSAXParser(); // 创建一个对象SAXParserHandler对象 handler = new SAXParserHandler(); parser.parse("books.xml", handler); } catch (ParserConfigurationException e) { e.printStackTrace(); } catch (SAXException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return handler.getBookList(); } public void createXML() { ArrayList<Book> bookList = parseXML(); // 1.创建一个TransformerFactory类的对象查看全部
-
SAXTransformerFactory tff = (SAXTransformerFactory) SAXTransformerFactory .newInstance(); try { // 2.通过SAXTransformerFactory对象创建一个TransformerHandler对象 TransformerHandler handler = tff.newTransformerHandler(); // 3.通过handler对象创建一个Transformer对象 Transformer tr = handler.getTransformer(); // 4.通过Transformer对象对生成的xml文件进行设置 // 设置xml的编码 tr.setOutputProperty(OutputKeys.ENCODING, "UTF-8"); // 设置xml“是否换行” tr.setOutputProperty(OutputKeys.INDENT, "yes"); // 5.创建一个Result对象 File f = new File("src/res/newbooks.xml"); if (!f.exists()) { f.createNewFile(); } //6.创建Result对象,并使其与handler关联 Result result = new StreamResult(new FileOutputStream(f)); //7.利用handler对象进行xml文件内容的编写 handler.setResult(result); } catch (TransformerConfigurationException e) { e.printStackTrace(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } public static void main(String[] args) { } }查看全部
-
还有作业查看全部
-
DocumentBuilder db = getDocumentBuilder(); Document document = db.newDocument(); document.setXmlStandalone(true);//在xml文件中将不必要的属性删掉 Element bookstore = document.createElement("bookStore"); <?xml version="1.0" encoding="UTF-8"?><bookStore> <book id="1"> <name>西游记</name> </book> </bookStore>查看全部
-
// name.setNodeValue("西游记");//行不通 name.setTextContent("西游记"); <?xml version="1.0" encoding="UTF-8" standalone="no"?> <bookStore> <book id="1"> <name>西游记</name> </book> </bookStore>查看全部
-
Element name = document.createElement("name"); book.appendChild(name); 运行结果: <?xml version="1.0" encoding="UTF-8" standalone="no"?> <bookStore> <book id="1"> <name/> </book> </bookStore>查看全部
-
XML文件中第一行StandAlone表示该XML文件是否独立设置为yes为默认值,且不显示,表示独立没有外部文件为其服务,设置为no表示外部有其他文件为其服务<br> new Document().setXmlStandalone("yes");<br> 生成XML文件子节点的文本内容<br> 1,将子节点添加进DOM树<br> Element ele2 = new Element("name");<br> ele1.append(ele2);<br> 2, 设置子节点的文本内容<br> ele2.setTextContent("String");查看全部
-
tf.setOutputProperty(OutputKeys.INDENT, "yes");//是否换行 <?xml version="1.0" encoding="UTF-8" standalone="no"?> <bookStore> <book id="1"/> </bookStore>查看全部
-
<?xml version="1.0" encoding="UTF-8" standalone="no"?><bookStore><book id="1"/></bookStore>查看全部
-
/** * 生成xml */ public void createXml(){ DocumentBuilder db = getDocumentBuilder(); Document document = db.newDocument(); Element bookstore = document.createElement("bookStore"); //向bookStore根节点中添加子节点book Element book = document.createElement("book"); book.setAttribute("id", "1"); //将book节点添加到bookstore根节点中 bookstore.appendChild(book); //将bookstore节点(已经包含了book)添加到dom树中 document.appendChild(bookstore); //创建TransformerFactory对象 TransformerFactory tff = TransformerFactory.newInstance(); try { //创建Transformer对象 Transformer tf = tff.newTransformer(); tf.transform(new DOMSource(document), new StreamResult(new File("books1.xml"))); } catch (TransformerConfigurationException e) { // TODO Auto-generated catch block e.printStackTrace(); }catch (TransformerException e) { // TODO Auto-generated catch block e.printStackTrace(); } }查看全部
-
/** * 主方法,程序的入口 */ public static void main(String[] args) { //创建DOMTest对象 DOMTest test = new DOMTest(); //调用解析方法,解析xml文件 // test.xmlParser(); test.createXml(); }查看全部
-
/** * 生成xml */ public void creatXml(){ DocumentBuilder db = getDocumentBuilder(); Document document = db.newDocument(); Element bookstore = document.createElement("bookStore"); //向bookStore根节点中添加子节点book Element book = document.createElement("book"); book.setAttribute("id", "1"); //将book节点添加到bookstore根节点中 bookstore.appendChild(book); //将bookstore节点(已经包含了book)添加到dom树中 document.appendChild(bookstore); //创建TransformerFactory对象 TransformerFactory tff = TransformerFactory.newInstance(); try { //创建Transformer对象 Transformer tf = tff.newTransformer(); tf.transform(new DOMSource(document), new StreamResult(new File("books1.xml"))); } catch (TransformerConfigurationException e) { // TODO Auto-generated catch block e.printStackTrace(); }catch (TransformerException e) { // TODO Auto-generated catch block e.printStackTrace(); }查看全部
-
Java 中 newInstance 方法和 new 的区别是什么? 1.new 是java中的关键字,是创建一个新对象的关键字。用new这个关键字的话,是调用new指令创建一个对象,然后调用构造方法来初始化这个对象,如果反编译class的话,会看到一个Object obj=new Object();这种语句,会先调用new指令生成一个对象,然后调用dup来复制对象的引用,最后调用Object的构造方法。 2.newInstance 不是关键字,newInstance() 是java反射框架中类对象(Class)创建新对象的方法。在这个过程中,是先取了这个类的不带参数的构造方法,然后调用构造方法的newInstance来创建对象 名:Object java.lang.Class.newInstance();如: Class clazz = String.class; Object newInstance = clazz.newInstance(); 3.newInstance() 也经常见于工厂设计模式中,在该模式中,共产类的该方法返回一个工厂bean。 如: Factory factory = new Factory(); Object obj = factory.newInstance(); 4.严格意义上来讲,这两者并没有可比较性,因为一个是java的关键字,有明确的用法和定义。一个是经常使用,但非标准的方法名称。查看全部
举报
0/150
提交
取消