`

XML的创建和指定元素的文本值进行替换

    博客分类:
  • xml
XML 
阅读更多

public class CreateXMLUtil {

 //无参数构造方法
 public CreateXMLUtil() {
 }

 //产生一个XML文档并存盘
 public Document createXML(String filename) {

  //使用DocumentHelper类创建一个文档实例
  Document document = DocumentHelper.createDocument();
  //创建根元素
  Element rootElement = document.addElement("linkmans");
  //为根元素创建第一个子元素
  Element firstElement = rootElement.addElement("linkman");

  Element element1 = firstElement.addElement("name");

  element1.setText("张三");

  Element element2 = firstElement.addElement("id");

  element2.setText("001");

  Element element3 = firstElement.addElement("email");

  element3.setText("ningyuxinyushan@163.com");

  Element element4 = firstElement.addElement("address");

  element4.setText("北京市");
  //将创建的XML文档存盘
  try {
   XMLWriter output = null;
   //创建一个格式化对象
   OutputFormat format = OutputFormat.createPrettyPrint();
   //使用TAB缩进
   format.setIndent("\t");
   //创建一个XMLWriter对象
   output = new XMLWriter(new FileOutputStream(new File(filename)),
     format);
   //将XML文档输出
   output.write(document);
   output.close();
  } catch (IOException e) {
   System.out.println(e.getMessage());
  }
  //返回XML文档对象
  return document;
 }

 //将文本串转换成XML文档并存盘
 public Document createTextXML(String filename, String text)
   throws Exception {
  //使用DocumentHelper类将文本串转换为XML文档
  Document document = DocumentHelper.parseText(text);
  //将创建的XML文档存盘
  try {
   XMLWriter output = null;
   //创建一个格式化对象
   OutputFormat format = OutputFormat.createPrettyPrint();
   //使用TAB缩进
   format.setIndent("\t");
   //创建一个XMLWriter对象
   output = new XMLWriter(new FileOutputStream(new File(filename)),
     format);
   //将XML文档输出
   output.write(document);
   output.close();
  } catch (IOException e) {
   System.out.println(e.getMessage());
  }
  //返回XML文档对象
  return document;
 }

 //在指定的文件中,将指定Xpath下的指定元素的文本值进行替换
 public Document update(String filename,String xpath,String element,
    String srcText,String tagText)throws Exception{
   
    //读取指定的XML文件,返回内存XML文档对象
   SAXReader reader = new SAXReader();
   Document doc = reader.read(new File(filename));
   //将指定的XPAHT的元素文本值进行替换
   List list = doc.selectNodes(xpath);
  
   Iterator it = list.iterator();
  
   while(it.hasNext()){
   
    Element el = (Element)it.next();
   
    Iterator itl = el.elementIterator(element);
   
    while(itl.hasNext()){
     Element titleElement = (Element)itl.next();
     if(titleElement.getText().equals(srcText)){
      titleElement.setText(tagText);
     }
    }
   }
   //将创建的XML文档存盘
   try{
    XMLWriter output = null;
    //创建一个格式化对象
    OutputFormat format = OutputFormat.createPrettyPrint();
    //使用Tab缩进
    format.setIndent("\t");
    //创建一个XMLWriter对象
    output = new XMLWriter(new FileOutputStream(new File(filename)),format);
    //将XML文档输出
    output.write(doc);
    output.close();
   }catch(IOException e){
    System.out.println(e.getMessage());
   }
   //返回XML文档对象
  return doc;
  }
}

分享到:
评论

相关推荐

    私服必备 文本替换专家2.5

    【文本替换专家2.5】是一款专为IT从业者和服务器管理员设计的强大工具,尤其在处理私服等特定场景下显得尤为实用。它集成了多种文本处理功能,能够高效地进行批量文本替换,对于HTML等格式的文件也有良好的支持,极...

    docx4j 替换文本

    使用这个类,我们可以指定一个要查找的文本和一个替换后的文本,然后docx4j会遍历整个文档,将所有匹配的文本替换为新的文本。这种方法可以应用于整个文档,也可以限制在特定的部分,如段落、表格、列表等。 下面是...

    POI替换文本和图片,解决分割异常替换不完全的问题

    然而,在实际操作中,可能会遇到一些问题,比如文本替换不完全或者在分割文档时出现异常。本文将详细探讨如何使用POI来有效地解决这些问题。 首先,让我们理解一下Apache POI的工作原理。POI库通过解析Office文件的...

    python+docx批量替换docx文件文本

    总的来说,这个Python解决方案利用了`docx`库的强大功能,实现了批量处理`.docx`文件的文本替换,尽管目前对复杂文档元素的支持有限,但计划的表格处理功能将增强其实用性。通过结合CSV文件,用户能够更有效地管理...

    POI DOCX 完美文本、表格模板文字替换并实现在指定位置插入图片浮于文字上方

    在本文中,我们将深入探讨如何使用Apache POI库在DOCX文档中实现完美的文本替换以及在指定位置插入图片,让图片浮于文字上方。Apache POI是一个流行的Java库,用于处理Microsoft Office格式的文件,包括DOCX。我们将...

    XML Schema教程

    - **在应用程序中读取和创建 XML Schema**:了解如何解析和生成 XML Schema 文件对于开发基于 XML 的应用至关重要。 - **在应用程序中使用 XML Schema**:XML Schema 可以用于验证 XML 数据的有效性,确保其符合预期...

    字符串转化为XML文件

    * 元素:XML文件由元素组成,元素可以包含文本、属性和其他元素。 * 属性:元素可以具有属性,用于提供额外的信息。 * 文本:元素可以包含文本,用于存储数据。 StringBuilder类的使用 StringBuilder类是.NET ...

    xmldom

    - `createElement()` 和 `createTextNode()` 方法:用于创建新的XML元素和文本节点。 3. **属性和命名空间** - `attributes` 属性:返回一个NamedNodeMap,包含了指定元素的所有属性。 - `namespaceURI` 和 `...

    解码XML和DTD

    创建XML DTD的主要目的是为了定义XML文档的结构和限制,确保XML文件的合法性。DTD通过一系列声明来规定XML文档中可以存在的元素、元素之间的关系、元素的属性等。这不仅有助于保持文档的一致性,还使得XML文档能够...

    qt读取xml文件

    5. **访问XML节点**:现在你可以通过QDomDocument的`documentElement()`方法获取XML的根元素,并使用`firstChildElement()`, `nextSiblingElement()`, `hasAttributes()`, `attribute()`等方法遍历和操作XML结构。...

    xml-wsdl基础知识

    - 例如,限定整数的最大值和最小值。 以上内容概括了XML-WSDL基础知识中关于XMLSchema的关键概念和技术细节,包括简单的数据类型、复杂的复合类型以及各种限定符的使用方法等。希望这些知识点能够帮助读者更好地...

    SQL链接和操作XML文件

    注意,`FORMATFILE`指定了一种描述XML文件结构的文本文件。 2. **查询XML数据**:利用XQuery表达式,你可以对存储的XML数据进行复杂的查询。例如,以下代码返回XML文档中所有`<element>`元素的值: ```sql ...

    xml 文件编辑查阅工具

    4. **搜索和替换**:支持在XML文件中快速查找和替换特定的文本或标签,提高工作效率。 5. **折叠/展开节点**:允许用户折叠或展开XML元素,以便于查看和管理复杂的文档结构。 6. **拖放编辑**:用户可以通过拖放操作...

    XML编辑器

    6. **查找和替换**:允许用户在XML文档中查找特定文本并进行替换,方便进行大规模的修改。 7. **链接解析**:如果XML文件引用了外部资源,如XSLT样式表或DTD,编辑器通常可以解析这些链接,提供相关文件的访问。 8...

    web的xml技术

    - **指定元素的额外信息**:例如`<person name="John">`。 - **属性名称不能重复**:同一元素内不允许出现同名属性。 - **属性值必须加引号**:如`<person name="John" age="30">`。 #### XML验证 - **通过DTD或...

    XML_Document.rar_xml_xml_Document

    3. createElement() 和 createTextNode(): 分别用于创建新的XML元素节点和文本节点。 4. appendChild(), insertBefore(), removeChild(), replaceChild(): 这些方法用于操作XML文档的DOM(Document Object Model)...

    XmlAnalysis.zip

    - **更新(Update)**: 修改XML元素的值或属性,这可能涉及找到要修改的节点,然后替换其内容或属性值。 - **删除(Delete)**: 从XML文件中移除指定的元素。这需要定位到该元素,然后将其从文档结构中删除。 6. ...

    XML Marker1.1

    4. **搜索与替换**:内置的搜索和替换功能允许用户快速查找和替换特定的XML元素或值,提高工作效率。 5. **验证功能**:XML Marker 1.1 支持XML Schema (XSD) 和 Relax NG 验证,确保文档符合指定的规范,避免数据...

    C#操作XML时,对xmlNode增、删、改操作

    C#操作XML时,对xmlNode增、删、改操作是指在C#程序中对XML文档中的xmlNode进行增删改操作,包括创建节点、删除节点、修改节点属性和值等操作。 创建节点 在C#中,创建节点可以使用CreateElement()或CreateNode()...

Global site tag (gtag.js) - Google Analytics