C#怎么修改XML元素的内容

C#怎么修改XML元素的内容,第1张

XmlDocument xml = new XmlDocument();

xmlload("这里是你放XML文件路径");

XmlNode node = xmlSelectSingleNode("configuration");// 获取configuration节点

XmlNodeList nodeList = xmlSelectSigle("configuration")Childnodes;//获取configuration的子节点

foreach(XmlNode xn in nodeList)

{

XmlElement xe = (XmlElement) xn;//将子节点类型转换为XmlElement

XmlNodeList xo = xeChildNodes;//继续获取xe子节点

foreach(XmlNode xl in xo)

{

XmlElement xx = (XmlElement) xl;//将子节点类型转换为XmlElement

if(xxName==server)

{

xxInnerText = //这里是你要配置元素server的内容

}

同理if(xxName==database)

{

}

}

}

xmlSave("这里是你放XML文件的路径");

第一步:在你的xml文件上右击选择”打开方式“,之后在选择”选择默认程序“。

第二步:选择你想要的打开方式(一般xml初始化的时候都是用IE打开,可根据实际情况修改),之后勾选上”始终使用选择的程序打开这种文件“,点击”确定“即可完成设置。

xml文件可以用excel软件打开,具体 *** 作步骤如下:

1、首先我们打开电脑里的excel软件,新建一个空白工作簿。

2、然后我们按住电脑上的 ctrl + s 键,或者点击选项卡上的文件》另存为,d出保存文件类型和文件名,上我们可以看出,excel支持保存后缀名为xml的文档。

3、同理我们也可以用excel打开xml文件,选择数据选项卡》自其他来源》来自XML数据导入。

4、然后选择你电脑上的xml文件进行打开就可以了打开之后的显示就是这样的。

你好的!

echo off

setlocal enabledelayedexpansion

set "file=123xml"

set "file_personal=1231xml"

(

    for /f "tokens=" %%i in (%file%) do (

        set s=%%i

        set s=!s:1032202=103220220!

        echo !s!

    )

)>%file_personal%

这个放到一个文件夹上

文件名我暂且定义为123xml

望采纳!

1

xml是被设计用来描述数据的,重点是什么是数据,如何存放数据。html是被设计用来显示数据的,重点是显示数据以及如何显示数据更好上面。html是与显示信息相关的,

xml则是与描述信息相关的。

2

很多软件中都会包含有一些xml文件,其实这是一种扩展性标识语言文件,是用于标记电子文件使其具有结构性的标记语言,通常无法直接打开。要打开xml文件的话,其实最简单的就是用excel表格打开了。

3

也可以用右键选择在记事本中打开,但是要想对xml文件进行编辑的话,最好还是使用xml编辑器或专业的文本编辑器。

@echo off

setlocal enabledelayedexpansion

for /f "delims=▓ tokens= eol=▓" %%a in (Bxml) do (

 set "ln=%%a"

 set "t=!ln!"

 set "t=!t:Bill Code=a!"

 if "!t!" neq "!ln!" (

  set "ln=!ln:^<=^^<!"

  set "ln=!ln:^>=^^>!"

  echo !ln!>>temp1tmp

 )

)

set ctr=0

for /f "delims=▓ tokens= eol=▓" %%a in (Axml) do (

 set "ln=%%a"

 set "t=!ln!"

 set "t=!t:Bill Code=a!"

 if "!t!" neq "!ln!" (

  set read=false

  set /a ctr+=1

  set ctr2=0

  for /f "delims=▓ tokens= eol=▓" %%b in (temp1tmp) do (

   set /a ctr2+=1

   if !read!==false if "!ctr!"=="!ctr2!" (

    set "ln=%%b"

    set read=true

   )

  )

 )

 set "ln=!ln:^<=^^<!"

 set "ln=!ln:^>=^^>!"

 echo !ln!>>temp2tmp

)

del /f /q Axml

rename temp2tmp Axml

del /f /q temp1tmp

echo Done

pause

把它放在xml文件旁运行,它会把Axml中带有bill code关键字的行整行替换成Bxml中对应的一整行。

运行前请做好原文件的备份。

using System;

using SystemData;

using SystemConfiguration;

using SystemWeb;

using SystemWebSecurity;

using SystemWebUI;

using SystemWebUIWebControls;

using SystemWebUIWebControlsWebParts;

using SystemWebUIHtmlControls;

/// <summary>

/// 用DataSet *** 作XML

/// </summary>

public class XmlHandle

{

#region GetDataSetByXml 读取xml直接返回DataSet

/// <summary>

/// 读取xml直接返回DataSet

/// </summary>

/// <param name="strPath">Xml的相对路径</param>

/// <returns>已装入XML文档的DataSet</returns>

public static DataSet GetDataSetByXml(string strXmlPath)

{

try

{

DataSet ds = new DataSet();

//读取XML到DataSet

dsReadXml(GetXmlFullPath(strXmlPath));

if (dsTablesCount > 0)

{

return ds;

}

return null;

}

catch (Exception)

{

return null;

}

}

#endregion

#region GetDataViewByXml 读取Xml返回一个经排序或筛选后的DataView

/// <summary>

/// 读取Xml返回一个经排序或筛选后的DataView

/// </summary>

/// <param name="strXmlPath"></param>

/// <param name="strWhere">筛选条件,如:"name = ’kgdiwss’"</param>

/// <param name="strSort">排序条件,如:"Id desc"</param>

/// <returns></returns>

public static DataView GetDataViewByXml(string strXmlPath, string strWhere, string strSort)

{

try

{

DataSet ds = new DataSet();

dsReadXml(GetXmlFullPath(strXmlPath));

//创建DataView来完成排序或筛选 *** 作

DataView dv = new DataView(dsTables[0]);

if (strSort != null)

{

//对DataView中的记录进行排序

dvSort = strSort;

}

if (strWhere != null)

{

//对DataView中的记录进行筛选,找到我们想要的记录

dvRowFilter = strWhere;

}

return dv;

}

catch (Exception)

{

return null;

}

}

#endregion

#region WriteXmlByDataSet 向Xml文件插入一行数据

/// <summary>

/// 向Xml文件插入一行数据

/// </summary>

/// <param name="strXmlPath">xml文件相对路径</param>

/// <param name="Columns">要插入行的列名数组,如:string[] Columns = {"name","IsMarried"};</param>

/// <param name="ColumnValue">要插入行每列的值数组,如:string[] ColumnValue={"kgdiwss","false"};</param>

/// <returns>成功返回true,否则返回false</returns>

public static bool WriteXmlByDataSet(string strXmlPath, string[] Columns, string[] ColumnValue)

{

try

{

//根据传入的XML路径得到XSD的路径,两个文件放在同一个目录下

//string strXsdPath = strXmlPathSubstring(0,strXmlPathIndexOf("")) + "xsd";

DataSet ds = new DataSet();

//读xml架构,关系到列的数据类型

//dsReadXmlSchema(GetXmlFullPath(strXmlPath));

dsReadXml(GetXmlFullPath(strXmlPath));

DataTable dt = dsTables[0];

//在原来的表格基础上创建新行

DataRow newRow = dtNewRow();

//循环给 一行中的各个列赋值

for (int i = 0; i < ColumnsLength; i++)

{

newRow[Columns[i]] = ColumnValue[i];

}

dtRowsAdd(newRow);

dtAcceptChanges();

dsAcceptChanges();

dsWriteXml(GetXmlFullPath(strXmlPath));

return true;

}

catch (Exception)

{

return false;

}

}

#endregion

#region UpdateXmlRow 更行符合条件的一条Xml记录

/// <summary>

/// 更行符合条件的一条Xml记录

/// </summary>

/// <param name="strXmlPath">XML文件路径</param>

/// <param name="Columns">列名数组</param>

/// <param name="ColumnValue">列值数组</param>

/// <param name="strWhereColumnName">条件列名</param>

/// <param name="strWhereColumnValue">条件列值</param>

/// <returns></returns>

public static bool UpdateXmlRow(string strXmlPath, string[] Columns, string[] ColumnValue, string strWhereColumnName, string strWhereColumnValue)

{

try

{

//同上一方法

//string strXsdPath = strXmlPathSubstring(0, strXmlPathIndexOf("")) + "xsd";

DataSet ds = new DataSet();

//读xml架构,关系到列的数据类型

//dsReadXmlSchema(GetXmlFullPath(strXsdPath));

dsReadXml(GetXmlFullPath(strXmlPath));

//先判断行数

if (dsTables[0]RowsCount > 0)

{

for (int i = 0; i < dsTables[0]RowsCount; i++)

{

//如果当前记录为符合Where条件的记录if(dsTables[0]Rows[i][strWhereColumnName]ToString()Trim()Equals(strWhereColumnValue))

{

//循环给找到行的各列赋新值

for (int j = 0; j < ColumnsLength; j++)

{

dsTables[0]Rows[i][Columns[j]] = ColumnValue[j];

}

//更新DataSet

dsAcceptChanges();

//重新写入XML文件

dsWriteXml(GetXmlFullPath(strXmlPath));

return true;

}

}

}

return false;

}

catch (Exception)

{

return false;

}

}

#endregion

#region DeleteXmlAllRows 删除所有行

/// <summary>

/// 删除所有行

/// </summary>

/// <param name="strXmlPath">XML路径</param>

/// <returns></returns>

public static bool DeleteXmlAllRows(string strXmlPath)

{

try

{

DataSet ds = new DataSet();

dsReadXml(GetXmlFullPath(strXmlPath));

//如果记录条数大于0

if (dsTables[0]RowsCount > 0)

{

//移除所有记录

dsTables[0]RowsClear();

}

//重新写入,这时XML文件中就只剩根节点了

dsWriteXml(GetXmlFullPath(strXmlPath));

return true;

}

catch (Exception)

{

return false;

}

}

#endregion

#region DeleteXmlRowByIndex 通过删除DataSet中iDeleteRow这一行,然后重写Xml以实现删除指定行

/// <summary>

/// 通过删除DataSet中iDeleteRow这一行,然后重写Xml以实现删除指定行

/// </summary>

/// <param name="strXmlPath">XML路径</param>

/// <param name="iDeleteRow">要删除的行在DataSet中的Index值</param>

public static bool DeleteXmlRowByIndex(string strXmlPath, int iDeleteRow)

{

try

{

DataSet ds = new DataSet();

dsReadXml(GetXmlFullPath(strXmlPath));

if (dsTables[0]RowsCount > 0)

{

//删除符号条件的行

dsTables[0]Rows[iDeleteRow]Delete();

}

dsWriteXml(GetXmlFullPath(strXmlPath));

return true;

}

catch (Exception)

{

return false;

}

}

#endregion

#region DeleteXmlRows 删除strColumn列中值为ColumnValue的行

/// <summary>

/// 删除strColumn列中值为ColumnValue的行

/// </summary>

/// <param name="strXmlPath">xml相对路径</param>

/// <param name="strColumn">列名</param>

/// <param name="ColumnValue">strColumn列中值为ColumnValue的行均会被删除</param>

/// <returns></returns>

public static bool DeleteXmlRows(string strXmlPath, string strColumn, string[] ColumnValue)

{

try

{

DataSet ds = new DataSet();

dsReadXml(GetXmlFullPath(strXmlPath));

//先判断行数

if (dsTables[0]RowsCount > 0)

{

//判断行多还是删除的值多,多的for循环放在里面

if (ColumnValueLength > dsTables[0]RowsCount)

{

for (int i = 0; i < dsTables[0]RowsCount; i++)

{

for (int j = 0; j < ColumnValueLength; j++)

{

//找到符合条件的行if(dsTables[0]Rows[i][strColumn]ToString()Trim()Equals(ColumnValue[j]))

{

//删除行

dsTables[0]Rows[i]Delete();

}

}

}

}

else

{

for (int j = 0; j < ColumnValueLength; j++)

{

for (int i = 0; i < dsTables[0]RowsCount; i++)

{

//找到符合条件的行if(dsTables[0]Rows[i][strColumn]ToString()Trim()Equals(ColumnValue[j]))

{

//删除行

dsTables[0]Rows[i]Delete();

}

}

}

}

dsWriteXml(GetXmlFullPath(strXmlPath));

}

return true;

}

catch (Exception)

{

return false;

}

}

#endregion

#region GetXmlFullPath 返回完整路径

/// <summary>

/// 返回完整路径

/// </summary>

/// <param name="strPath">Xml的相对路径</param>

/// <returns>Xml的路径</returns>

private static string GetXmlFullPath(string strPath)

{

//如果路径中含有:符号,则认定为传入的是完整路径

if (strPathIndexOf(":") > 0)

{

return strPath;

}

else

{

//返回完整路径

return SystemWeb>

以上就是关于C#怎么修改XML元素的内容全部的内容,包括:C#怎么修改XML元素的内容、xml格式的文件 怎么改回 系统默认的打开方式、xml文件用什么编辑等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/10066901.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存