㈠ java中的XML追加内容,追加节点,和节点的内容,还要常用的设计模式的代码
/**
* 根据Xml文件生成Document对象
*
* @param file
* xml文件路径
* @return Document对象
* @throws DocumentException
*/
public static Document getDocument(String path) throws DocumentException {
File file = new File(path);
SAXReader xmlReader = new SAXReader();
return xmlReader.read(file);
}
/**
* 根据输入流生成Document对象
*
* @param is
* 输入流
* @return Document对象
* @throws DocumentException
*/
public static Document getDocument(InputStream is) throws DocumentException {
SAXReader xmlReader = new SAXReader();
return xmlReader.read(is);
}
/**
* 根据Document得到根结点
*
* @param doc
* Document目录
* @return 根结点
* @throws DocumentException
*/
public static Element getRoot(String path) throws DocumentException {
Document doc = getDocument(path);
return doc.getRootElement();
}
/**
* 取出当前结点下的所有子结点
*
* @param root
* 当前结点
* @return 一组Element
* @throws DocumentException
*/
@SuppressWarnings("unchecked")
public static List<Element> getElements(String path)
throws DocumentException {
Element root = getRoot(path);
return root.elements();
}
/**
* 根据元素名称返回一组Element
*
* @param root
* 当前结点
* @param name
* 要返回的元素名称
* @return 一组Element
* @throws DocumentException
*/
@SuppressWarnings("unchecked")
public static List<Element> getElementsByName(String path, String name)
throws DocumentException {
Element root = getRoot(path);
return root.elements(name);
}
/**
* 根据元素名称返回一个元素(如果有多个元素的话,只返回第一个)
*
* @param root
* 当前结点
* @param name
* 要返回的元素名称
* @return 一个Element元素
* @throws DocumentException
*/
public static Element getElementByName(String path, String name)
throws DocumentException {
Element root = getRoot(path);
return root.element(name);
}
/**
* 根据当前元素,返回该元素的所有属性
*
* @param root
* 当前结点
* @return 当前结点的所有属性
* @throws DocumentException
*/
@SuppressWarnings("unchecked")
public static List<Attribute> getAttributes(String path)
throws DocumentException {
Element root = getRoot(path);
return root.attributes();
}
/**
* 根据属性名称,返回当前元素的某个属性
*
* @param root
* 当前结点
* @return 当前结点的一个属性
* @throws DocumentException
*/
public static Attribute getAttributeByName(String path, String name)
throws DocumentException {
Element root = getRoot(path);
return root.attribute(name);
}
public static List<Element> getElementWithAttribute(String path,String attr,String value) throws DocumentException{
List<Element> elist = new ArrayList<Element>() ;
List<Element> list = getElements(path);
for(Element element:list){
if(element.attribute(attr).getText().equals(value)){
elist.add(element);
}
}
try {
elist.add(getElementSelf(path, attr, value));
} catch (Exception e) {
// TODO: handle exception
}
return elist;
}
public static Element getElementSelf(String path,String attr,String value) throws DocumentException{
Element element = null ;
List<Element> list = getElements(path);
for(Element e:list){
if(e.attribute(attr).getText().equals(value)){
element = e ;
}
}
return element;
}
㈡ java如何在为XML添加新节点
dom操作Java,需要下载dom4j.jar包。
具体操作请见:http://blog.csdn.net/cds27/archive/2008/03/02/2139110.aspx
㈢ java 添加节点并保存成XML问题
在java编程中,用dom4j的api来处理xml,很简单的,给段代码,需要导入dom4j.jar
Documentdoc=DocumentHelper.createDocument();
//根节点
ElementrootEle=doc.addElement("root");
Elementele1=rootEle.addElement("ele1");
ele1.addText("节点1");
Elementele2=rootEle.addElement("ele2");
ele2.addText("节点2");
System.out.println(doc.asXML());
㈣ java对xml文件添加节点
/*
这里使用了dom4j组件,你需要自己去下载dom4j。
其中a.xml是你的源文件。
这个程序没有向磁盘中创建一个新文件,你可以自己修改代码。
例如:
XMLWriter xmlWriter = new XMLWriter(new PrintWriter(System.out), format);
可以修改为
XMLWriter xmlWriter = new XMLWriter(new FileWriter("a.xml"), format);
这样就可以修改源文件a.xml了。
*/
import org.dom4j.*;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;
import org.dom4j.io.SAXReader;
import java.io.*;
public class Test {
public static void main(String[] args) {
SAXReader saxReader = new SAXReader();
try {
Document doc = saxReader.read(new File("a.xml"));
doc.getRootElement().addElement("PARAM")
.addElement("TASKLIST").addElement("TASK")
.addElement("DATA_TRAN_ID").addCDATA("14595");
OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding("gb2312");
XMLWriter xmlWriter = new XMLWriter(new PrintWriter(System.out), format);
xmlWriter.write(doc);
xmlWriter.close();
} catch (DocumentException e) {
e.printStackTrace();
} catch(IOException e) {
e.printStackTrace();
}
}
}
㈤ 通过java如何操作xml向其节点中添加内容比如<say>想添加的内容</say>
<say>我是个字符串可以随便填</say>
你是要代码吗
InputStream is= this.getClass.getInputStream("my.xml");
在通过 is获得内容我就说他是 String xml=is....
String str="想添加的内容";
String newxml=xml.replace("我是个字符串可以随便填",str);
㈥ java用dom更新xml的问题,怎么在子节点下添加节点
用dom找到子节点,用create方法创建节点,然后把它加到子节点上
㈦ Java xml DOM(删除,增加节点)
用jdom解析方式嘛
import java.io.*;
import org.jdom.*;
import org.jdom.output.*;
public class WriteXML
{
public void BuildXML() throws Exception
{
Element root,student,number,name,age;
root = new Element("悄指薯student-info"); //生成根元素:student-info
student = new Element("student"); //生成元素:student,该元素中将包含元素number,name,age
number = new Element("number");
name = new Element("name");
age = new Element("age");
Document doc = new Document(root); //将根元素植入文档doc中
number.setText("001");
name.setText("lnman");
age.setText("24"启者);
student.addContent(number);
student.addContent(name);
student.addContent(age);
root.addContent(student);
Format format = Format.getCompactFormat();
format.setEncoding("gb2312"); //设置xml文件的字符为gb2312
format.setIndent(" "); //设置xml文件的缩进为4个空格
XMLOutputter XMLOut = new XMLOutputter(format);//在元素后换行,每一层元素缩排四格
XMLOut.output(doc, new FileOutputStream("studentinfo.xml"));
}
public static void main(String[] args) throws Exception
{
WriteXML w = new WriteXML();
System.out.println("Now we build an XML document .....");
w.BuildXML();
System.out.println("finished!");
}
}
Dom的话比较麻烦.大逗陆体上是这样的
DocumentBuilderFactory bf = DocumentBuilderFactory.newInstance();
DocumentBuilder build = bf.newDocumentBuilder();
Document doc = build.parse("MyXml.xml");
NodeList nl = doc.getElementsByTagName("Structure");
Node nod = nl.item(0);
Element el = doc.createElement("Message_Info");
el.setAttribute("Name", "李四");
Element elMemo = doc.createElement("Memo");
elMemo.setTextContent("我还好");
el.appendChild(elMemo);
nod.appendChild(el);
TransformerFactory factory = TransformerFactory.newInstance();
Transformer tf = factory.newTransformer();
DOMSource sourse = new DOMSource(doc);
StreamResult result = new StreamResult("MyXml.xml");
tf.transform(sourse, result);
㈧ java 获取xml 父节点 并追加
你用什么解释xml啊,
子结点。append属性,然后父节点。append子结点啊。
㈨ 在java中,使用JDOM怎么给XML添加一个元素节点和一个属性节点
Element e = new Element("root");//根节点
Element ele = new Element("Class");//Class节点
ele.setAttribute("name","二年1班");//为class节点增加属性为name,值为二年一班的节点
㈩ java生成xml后毫无格式 求高手指点 代码如下 // 创建根节点
你应该用的jar是jdom吧.一下是格式化方法罩带.
XMLOutputter XMLOut = new XMLOutputter(FormatXML());
public Format FormatXML(){
//格式化生成的xml文件物铅芦,如果不进行格式化的话,生激腔成的xml文件将会是很长的一行...
Format format = Format.getCompactFormat();
format.setEncoding("utf-8");
format.setIndent(" ");
return format;
}