-
JDOM生成XML不会转义的方法: Element title = new Element("title"); CDATA cdata = new CDATA("上海移动互联网产业促进中心正式揭牌"); title.setContent(cdata); 转义操作将title.setText("<![CDATA[上海移动互联网产业促进中心正式揭牌 ]]>");换成title.addContent(new CDATA("上海移动互联网产业促进中心正式揭牌")); channel下添加带内容的title节点: rss.addContent(channel);//加入channel下 title.setText("内容");//在title中添加内容 channel.addContent(title);//加入title下 rss.addContent(channel);//加入channel下 title.setText();//在title中添加内容 channel.addContent(title);//加入title下查看全部
-
JDOM 生成 XML 根节点 private void createXML() { //1.生成一个根节点 Element rss = new Element("rss"); //2.为节点添加属性 rss.setAttribute("version", "2.0"); //3.生成一个document对象 Document document = new Document(rss); //4.创建XMLOutputter的对象 XMLOutputter outputer = new XMLOutputter(format); try { //5.利用outputer将document对象转换成xml文档 outputer.output(document, new FileOutputStream(new File("rssnews.xml"))); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } }查看全部
-
//设置生成的字符不转义(就是文件里的文本内容中含有特殊字符,比如<> \等等,默认为true 那么就会显示转义的字符) writer.setEscapeText(false);查看全部
-
//4.生成子节点及节点内容 Element channel = rss.addElement("channel"); Element title = channel.addElement("title"); title.setText("<![CDATA[上海移动互联网产业促进中心正式揭牌 ]]>"); //5.设置生成xml的格式 //漂亮格式(换行) OutputFormat format = OutputFormat.createPrettyPrint(); format.setEncoding("GBK"); //6.生成xml文件 File file = new File("rssnews.xml"); XMLWriter writer; try { writer = new XMLWriter(new FileOutputStream(file), format); //设置是否转义,默认值是true,代表转义 writer.setEscapeText(false); writer.write(document); writer.close(); } catch (IOException e) { e.printStackTrace(); }查看全部
-
private void createXML(){ //1.创建document对象,代表整个xml文档 Document document = DocumentHelper.createDocument(); //2.创建根节点rss Element rss = document.addElement("rss"); //3.向rss节点中添加version属性 rss.addAttribute("version", "2.0"); //4.生成子节点及节点内容 Element channel = rss.addElement("channel"); Element title = channel.addElement("title"); title.setText("<![CDATA[上海移动互联网产业促进中心正式揭牌 ]]>"); //5.设置生成xml的格式 OutputFormat format = OutputFormat.createPrettyPrint(); format.setEncoding("GBK"); //6.生成xml文件 File file = new File("rssnews.xml"); XMLWriter writer; try { writer = new XMLWriter(new FileOutputStream(file), format); //设置是否转义,默认值是true,代表转义 writer.setEscapeText(false); writer.write(document); writer.close(); } catch (IOException e) { e.printStackTrace(); }查看全部
-
创建result对象,使其与handler关联;为节点设置节点值用 handler.characters(book.getName.toCharArray(),0,book.getName().length()); setResult()必须在startDocument()之前调用,否则会抛出异常查看全部
-
//7.利用handler对象进行xml文件内容的编写 //打开document handler.startDocument(); AttributesImpl attr=new AttributesImpl(); handler.startElement(null, null, "bookstore", attr); attr.clear();//用完一次清除一次。 attr.addAttribute(null, null, "id", null, "1"); handler.startElement(null, null, "book", attr); attr.clear(); attr.addAttribute(null, null, "ic", null, "1"); handler.startElement(null, null, "name", attr); handler.endElement(null, null, "name"); handler.endElement(null, null, "book"); handler.endElement(null, null, "bookstore"); 如果不加endElement就没有结束标签 每一个Element里面都要添加一个Attribute,可以重复利用查看全部
-
SAX方式生成xml文件的准备工作: // 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.创建一个File对象用于接收写入的操作 File f = new File("src/res/newbooks.xml"); if (!f.exists()) { f.createNewFile(); } // 6.创建Result对象,并且使其与handler关联 Result result = new StreamResult(new FileOutputStream(f)); handler.setResult(result);查看全部
-
给文本节点添加文本值:节点对象.setTextContent 可以为文本节点添加节点值(这里直接给Element节点setValue添加节点值是不行的,Element的nodeValue为null) standalone : 用来表示该文件是否呼叫其它外部的文件。若值是 ”yes” 表示没有呼叫外部文件,即说明当前的xml文件是没有DTD和Schema作为它的相关文档,若值是 ”no” 则表示有呼叫外部文件。默认值是 “yes”。 DTD:文档类型定义(Document Type Definition)是一套关于标记符的语法规则。 <?xml version="1.0" encoding="utf-8" standalone="no" ?> 注:顺序不能弄错,要不然会报错 附:一开始以为是standalone =“no”的问题 ,后来查了一下发现,这个属性真正的意思是:XML standalone 定义了外部定义的 DTD 文件的存在性. standalone element 有效值是yes和no.如下是一个例子: <?xml version="1.0" encoding="UTF-8" standalone="no"?> <!DOCTYPE s1 PUBLIC "http://www.ibm.com/example.dtd" "example.dtd"> <s1>.........</s1>值 no 表示这个 XML 文档不是独立的而是依赖于外部所定义的一个 DTD.值 yes 表示这个 XML 文档是自包含的(self-contained). Ps:因为两个视频的说法引起歧义,又去网络上查了下,standalone表示该xml是不是独立的,如果是yes,则表示这个XML文档时独立的,不能引用外部的DTD规范文件;如果是no,则该XML文档不是独立的,表示可以引用外部的DTD规范文档。 <?xml version="1.0" encoding="utf-8" standalone="yes/no"?> yes:说明当前的xml文件是没有DTD和Schema作为它的相关文档的;no:相反查看全部
-
1.通过TransformerFactory.newInstance() 创建TransformerFactory对象tff把document对象转换为xml文件 2.通过tff.newTransformer()创建Transformer对象tf 3.通过tf.transform(newDOMSource(document),new StreamResult(new File("books1.xml"))),并且捕捉异常(StreamResult是个输出流) 运行后,发现没有输出,但是已经生产了,refresh一下有了books1.xml 打开生产的xml文件,发现没有换行。可以在之前的代码中添加tf.setOutputProperty(OutputKeys.INDENT,"yes"); OutputKeys.INDENT代表是否换行,yes 代表 换行查看全部
-
1.通过DocumentBuilderFactory.newInstance()实例一个DocumentBuilderFactory对象dbf。 2.通过dbf.newDocumentBuilder()创建DocumentBuilder对象db,注意捕捉异常 3.通过db.newDocument()创建Document对象document. 4.通过document.createElement("bookstore");创建一个bookstore节点 5.通过document.createElement("book");为bookstore创建一个book节点 6.通过book.setAttribute("id","1");为book添加属性。 7.通过bookstore.appendChild(book);将刚才创建的book节点添加到bookstore根节点中。 8.通过document.appendChild(bookstore),将之前创建的bookstore节点(已经包含了book),添加到dom树中。 所以是 创建document,创建根节点,创建子节点,为子节点添加属性,再依次把子节点添加到父节点中,最多添加到根节点,添加到dom树中。 创建根节点和 book 节点属性 public DocumentBuilder getDocumentBuilder(){ // 创建一个DocumentBuilderFactory的对象 DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); // 创建DocumentBuilder对象 DocumentBuilder db =null; try { db = dbf.newDocumentBuilder(); } catch (ParserConfigurationException e) { e.printStackTrace(); } return db; }查看全部
-
设为false 代表不转义查看全部
-
DOM4J JDOM 非官方提供,需导入java包查看全部
-
移动代码快捷键查看全部
-
生产节点间的文本查看全部
举报
0/150
提交
取消