当前位置: 技术问答>java相关
JDOM xml declaration
来源: 互联网 发布时间:2015-09-08
本文导语: 我在本站下了一段 JDOM的简单代码,修改后(我用的是JDOM-b3),编译成class,可运行时出现 the XML declarartion may only apear at the very begining of the document . 问: 错在哪里? import org.jdom.*; import org.jdom.output.*; impo...
我在本站下了一段 JDOM的简单代码,修改后(我用的是JDOM-b3),编译成class,可运行时出现 the XML declarartion may only apear at the very begining of the document .
问:
错在哪里?
import org.jdom.*;
import org.jdom.output.*;
import org.jdom.input.*;
import java.io.*;
public class TestJDOM{
public static void main(String args[])throws Exception{
SAXBuilder sb = new SAXBuilder();
//从文件构造一个Document,因为XML文件中已经指定了编码,所以这里不必了
Document doc = sb.build(new FileInputStream("exampleA.xml"));
//加入一条处理指令
ProcessingInstruction pi = new ProcessingInstruction
("xml-stylesheet","href="/tech-qa-java/bookList.html.xsl" type="text/xsl"");
doc.addProcessingInstruction(pi);
Element root = doc.getRootElement(); //得到根元素
java.util.List books = root.getChildren(); //得到根元素所有子元素的集合
Element book = (Element)books.get(0); //得到第一个book元素
//为第一本书添加一条属性
Attribute a = new Attribute("hot","true");
book.addAttribute(a);
Element author = book.getChild("author"); //得到指定的字元素
author.addText("王五"); //将作者改为王五
//或 Text t = new Text("王五");book.addContent(t);
Element price = book.getChild("price"); //得到指定的字元素
//修改价格,比较郁闷的是我们必须自己转换数据类型,而这正是JAXB的优势
author.addText(Float.toString(50.0f));
String indent = "";
boolean newLines = true;
XMLOutputter outp = new XMLOutputter(indent,newLines);
outp.output(doc, new FileOutputStream("exampleB.xml"));
}
}
exampleA.xml:
Java编程入门
张三
2002-6-6
35.0
XML在Java中的应用
李四
2002-9-16
92.0
问:
错在哪里?
import org.jdom.*;
import org.jdom.output.*;
import org.jdom.input.*;
import java.io.*;
public class TestJDOM{
public static void main(String args[])throws Exception{
SAXBuilder sb = new SAXBuilder();
//从文件构造一个Document,因为XML文件中已经指定了编码,所以这里不必了
Document doc = sb.build(new FileInputStream("exampleA.xml"));
//加入一条处理指令
ProcessingInstruction pi = new ProcessingInstruction
("xml-stylesheet","href="/tech-qa-java/bookList.html.xsl" type="text/xsl"");
doc.addProcessingInstruction(pi);
Element root = doc.getRootElement(); //得到根元素
java.util.List books = root.getChildren(); //得到根元素所有子元素的集合
Element book = (Element)books.get(0); //得到第一个book元素
//为第一本书添加一条属性
Attribute a = new Attribute("hot","true");
book.addAttribute(a);
Element author = book.getChild("author"); //得到指定的字元素
author.addText("王五"); //将作者改为王五
//或 Text t = new Text("王五");book.addContent(t);
Element price = book.getChild("price"); //得到指定的字元素
//修改价格,比较郁闷的是我们必须自己转换数据类型,而这正是JAXB的优势
author.addText(Float.toString(50.0f));
String indent = "";
boolean newLines = true;
XMLOutputter outp = new XMLOutputter(indent,newLines);
outp.output(doc, new FileOutputStream("exampleB.xml"));
}
}
exampleA.xml:
Java编程入门
张三
2002-6-6
35.0
XML在Java中的应用
李四
2002-9-16
92.0
|
保证你的PI在文本文件的第一行
删除
而不是
exampleA.xml:
或
exampleA.xml:
删除
而不是
exampleA.xml:
或
exampleA.xml: