易截截图软件、单文件、免安装、纯绿色、仅160KB

代码修改XML标签

一、问题描述:
一个XML文档,名为OriginXml.xml,示例数据如下:
 <?xml version="1.0" encoding="utf-8"?>
<Class>
<student id="2001001">
<name>张三</name>
<age>18</age>
<scores>
<语文>79</语文>
<数学>90</数学>
</scores>
</student>
<student id="2001002">
<name>李四</name>
<age>20</age>
<scores>
<语文>88</语文>
<数学>64</数学>
</scores>
</student>
</Class>
  
 
现需要在两个文档间转换,需要将标签student修改为<pStudent>,其余子元素保持不变,修改的文档存入ModifyXML.xml中。
 
二、问题分析
    修改标签名称,实质上是对元素重命名。元素在DTD或XML Schema中定义,因此修改元素名称必须修改DTD或XML Schema,否则修改后的文档不是“数据有效”的。如果没有DTD或XML Schema的情况下,则要简单一些。可以直接修改或在DOM模型中修改。
    直接修改就是将XML文档视为普通的文本流,读入后直接进行字符串替换操作。但是,如果内嵌DTD或XML Schema定义,则不可直接替换。替换过程中,如果元素具有限定名称,则最好使用正则表达式查找、替换。
    DOM模型修改是通过读入XML文档后,根据要求解析并重构节点。相对于SAX来说,DOM是可编辑的,但并不意味着节点名称可更改。一旦创建节点后,名称即不可修改。所以只能创建新节点,将原有节点复制过去并作必要的修改,最后替换节点。
三、解决问题
    以下描述了假定没有DTD和XML Schema的情况下,修改元素标签的两种方法 
(一)直接修改
代码如下:
StreamReader sr = new StreamReader("OriginXml.xml");
string str = sr.ReadToEnd();
sr.Close();
str=str.Replace("student", "pStudent");
//如果有限定名称,最好用正则表达式查询、替换
StreamWriter sw = new StreamWriter("ModifyXml.xml");
sw.Write(str);
sw.Flush(); sw.Close();


(二)使用DOM模型修改
XmlDocument doc = new XmlDocument();
doc.Load("OriginXml.xml");
XmlElement oldEleme


相关文档:

web编程 XML文件格式

一个xml文件的例子  现在我们暂且使用“记事本”来创建我们的xml文件吧。先看一个xml文件:
  例1
  ——————————————————————
  〈?xml version="1.0" encodin ......

dom4j对xml比较完整的操作

最近写的插件用到了dom4j,来读写,修改文档。用到的功能都写出来了
下面包含了两个程序 WriteFriendsInfo,和 ReadFriendsInfo。
1.WriteFriendsInfo 包含了新建xml和修改,删除xml节点的方法
 一些要点:
    WriteFriendsInfo 中修改节点采用的方式是删除节点,然后把新的节点写进去。在不对读 ......

java读取xml配置文件

xml文件如下 配置功能开关
<Configurations>
    <Samples>true</Samples>
    <Excepts>true</Excepts>
    <CheckFace>false</CheckFace>
    <ThumbNail>false</ThumbNail>
  &nbs ......

C#生成XML文件的 函数

protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
         &nbs ......

用jdom对xml文件的读取

import java.io.FileInputStream;
import java.io.IOException;
import java.util.Iterator;
import java.util.List;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;
import org.jdom.xpath.XPath;
public class XMLReader {
 priv ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号