如何将符合xml规范的String转化为XML文档中的element对象:
/**
* 字符串转化为XML对象并加入到XML中的某一个节点下
* @throws DocumentException
*/
public void stringToXml() throws DocumentException{
SAXReader saxReader = new SAXReader();
Document doc;
try {
doc = saxReader.read(new ByteArrayInputStream(xmlStr.getBytes("UTF-8")));
if (doc!=null){
Element element=doc.getRootElement();
SAXReader saxReader1 = new SAXReader();
Document document1 = saxReader1.read(fileName);
Element element1 = (Element)document1.selectSingleNode("//template");
element1.add(element);
writeXML(document1);
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
/**
* 写XML
* @param doc
*/
private void writeXML(Document doc){
OutputFormat of = OutputFormat.createPrettyPrint();
of.setEncoding("utf-8");
FileOutputStream fos = null;
XMLWriter xmlout = null;
String lockfilename = fileName + ".lock";
MessageLock lock = new MessageLock(lockfilename);
try{
if(lock.lock()) {
fos = new FileOutputStream(this.fileName);
xmlout = new XMLWriter(new OutputStreamWriter(fos, "utf-8"), of);
xmlout.write(doc);
xmlout.flush();
}
}catch (Exception ex){
log.error("-->writeXml",ex);
}finally{
lock.unlock();
if (fos != null){
try{
fos.close();
}catch (IOException ex1){
log.error("-->writeXml",ex1);
}
}
if (xmlout != null){
try{
xmlout.close();
}catch (IOException ex2){
log.error("-->writeXml",ex2);
}
}
}
}
分享到:
相关推荐
要将XML文件读取为String,首先需要创建一个`Document`对象,这是DOM4J的核心数据结构,代表整个XML文档。可以使用`DocumentHelper`类的静态方法`parseText()`或`readFile()`来完成这个任务。例如: ```java ...
首先,你需要创建一个`JAXBContext`实例,然后使用`Marshaller`对象将`Map`对象写入XML字符串。 ```java import javax.xml.bind.JAXBContext; import javax.xml.bind.Marshaller; public String mapToXml(Map...
3. **处理属性**:元素的属性转换为对象的属性。如果多个元素具有相同的标签名,可能需要将它们存储为数组。 4. **处理命名空间**:XML可能包含命名空间,这需要特殊处理,例如通过创建子对象来表示命名空间。 5. ...
3. 保存XML文件:使用`SaveXMLFile()`方法,将XMLDocument对象的内容保存到文件中。 例如: ```powerbuilder object xmlDoc : XMLDocument string strFilePath = "C:\new_example.xml" // 创建XMLDocument对象 ...
第一种方法是通过`XmlNodeReader`来逐个读取XML节点,并将其转化为指定的对象。以下是一般的步骤: 1. 加载XML文件:使用`XmlDocument`类加载XML文件内容。 2. 创建XmlNodeReader:用`XmlNodeReader.Create()`方法...
本教程将深入讲解如何使用C#进行XML文件的读写操作,包括增加、删除、修改和查找元素。 首先,我们要了解C#中的System.Xml命名空间,它提供了处理XML文档的各种类。主要涉及以下类: 1. **XmlDocument**:这是处理...
这篇博客文章“根据XML Schema生成XML”探讨了如何使用XML Schema来创建符合规范的XML文档。 首先,理解XML Schema的基本元素是关键。XML Schema定义了一系列的元素(element)、属性(attribute)和数据类型(data...
在这个场景中,我们需要关注的是如何通过Java从XML文件中根据特定路径获取节点,并将这些节点的值转化为字符串数组。 首先,我们需要了解Java中处理XML的主要库:DOM(Document Object Model)、SAX(Simple API ...
在这个`xmlStrToBean`方法中,我们首先使用`DocumentHelper.parseText()`将XML字符串解析为`Document`对象,然后获取根元素。接着,我们遍历根元素的所有子元素,将每个元素的名称作为Bean的属性名,元素的文本作为...
6. **验证转化**:完成XSD文件编写后,可以用这个XSD文件来验证XML文档是否符合定义的结构和约束。 XSD验证XML的合法性: 1. **解析XSD**:首先,解析XSD文件以获取其定义的规则。 2. **匹配元素和属性**:遍历XML...
这通常通过DOM(Document Object Model)解析器完成,首先解析XML文档为内存中的节点树,然后在适当位置插入新节点。 2. 删除:移除特定元素或属性。同样使用DOM,找到要删除的节点并调用其`removeChild()`方法。 3....
本示例涉及的核心知识点是将Java中的List对象与XML文档进行相互转换。这里,我们使用的库是dom4j-1.6.1.jar,这是一个强大的Java XML处理库。 首先,让我们详细了解一下List和XML。List是Java集合框架的一部分,它...
在Python中,我们可以使用`xml.etree.ElementTree`库解析XML,然后将解析结果转换为`pandas`的DataFrame对象,最后利用`pandas`的`to_excel`方法将DataFrame写入Excel文件: ```python import xml.etree.Element...
在Java编程中,生成XML文件并发送报文是一项常见的任务,尤其在系统间的数据交换、API调用或者网络通信中。XML(eXtensible Markup Language)是一种结构化数据表示语言,具有良好的可读性和可扩展性,是数据传输的...
例如,可以使用ET.parse()函数从文件中读取XML,或者使用ET.fromstring()函数从字符串中直接解析XML。一旦数据被解析,就可以通过ElementTree或Element提供的方法来操作数据。 遍历XML树可以通过迭代Element对象来...
string xmlString = "<root><element>Value</element></root>"; XDocument doc = XDocument.Parse(xmlString); ``` 2. 查询XML数据: 使用LINQ to XML API,我们可以轻松地查询XML文档中的元素和属性。例如,获取`...
XML Schema,全称为XML Schema Definition,是用于定义XML文档结构和数据类型的规范,它是W3C(World Wide Web Consortium)制定的一种标准。在本实验"西工大服务计算实验2-1_XML Schema"中,你的任务是编写一个程序...
在代码中,`doc2String()`方法创建了一个`OutputFormat`对象,设置了编码为`GB2312`,然后创建了一个`XMLWriter`实例,将`Document`对象写入到`OutputStream`,最后将`OutputStream`转换为字符串。如果在执行过程中...
本示例将详细讲解如何使用TinyXML库在C++中实现XML文件的读写操作。首先,确保你已经下载并包含了TinyXML库的头文件`tinyxml.h`和`tinyxml.cpp`。接下来,我们将分步骤介绍基本用法。 1. **解析XML文件** 要读取...
1. **加载XML文件**:TinyXML能够从文件或字符串中读取XML文档,将其转化为内存中的DOM树。 2. **遍历DOM树**:解析后的XML文档被表示为一系列的元素(Element)、属性(Attribute)、文本(Text)等节点,可以使用...