二度xml<一>
2024-10-20 20:57:21
又一次学习Xml,之前差不多都忘了,为了下半年的面试,为了工作重头来过。。。。。。。
其实我觉得直接上代码来的更实际点,理论的东西,我们随便找点书看看就行。
下面的代码是为了打印出一个xml文件
xml文件如下:
<?xml version="1.0" encoding="utf-8" ?>
<books>
<book>
<title title="nimei" >beginning with C# 4.0</title>
<author>Karli Waton</author>
<!-- nijsfsajfsaf-->
<code>7865</code>
</book>
</books>
代码如下:
public void LoadXmlFileAndPrint()
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load("../../testXml2.xml");
XmlNode node= xmlDoc.DocumentElement;
// string result=Print( node, "","");
string result = LoopFunctionGetResult(node,"");
Console.Write(result);
} private string LoopFunctionGetResult(XmlNode node, string text)
{ //所有的Node都有类型,分为:element,comment,xmltext;而xmltext,comment是没有attribute、butes属性的,
//所有有关xmltext和commend的操作要放到有关element操作之前 if (node is XmlText) //判断是否是xmltext类型
{
text += node.Value;
return text;
} if (node is XmlComment) //判断是否是xmlcomment类型
{
text +=" \n <!--"+ node.Value+"-->";
return text;
}
//由于xmltext和xmlcommetn的书写格式不一样,只有他们判断之后,才能写节点<...>,
text += "\n <" + node.Name; if (node.Attributes.Count > 0)
{
AddAttributesMe(node, ref text);
}
if (node.HasChildNodes)
{
text +="> ";
foreach (XmlNode child in node.ChildNodes) //如果该节点下存在子节点,就递归调用函数(注意:返回的值也要接收)
text=LoopFunctionGetResult(child, text); //如果当前节点是text or commend,加结束符号
//if (node.ChildNodes.Count == 1 && (node.FirstChild is XmlText || node.FistChild is XmlCommend) //{
// text += "</" + node.Name + ">";
//}
//else (这写可以不要,写上思路更加清晰)
text += " \t \n </" + node.Name + ">"; //非文本类型,加结束符号
}
return text;
}
顺便提提ref和out:
ref和out都是传引用而不是传值;不同之处在于:ref在传引用之前要初始化,而out不用。他们编译是完全一样的!
最新文章
- Microsoft Client Development MVP 2013 - 2014
- 关于防止App被第三方应用Kill掉的问题
- Ubuntu 16.04 下使用Xampp
- 23Spring_JdbcTemplate来实现单表的增删改查
- 【转载】使用barman备份PostgreSQL
- ASP连接access 数据库的增删改查 - imsoft.cnblogs
- 将序列设置为字段的默认值 - oracle
- WINCE 开机自动弹USB连接窗口问题(已解决)
- 服务 进程间通讯 IPC AIDL Parcelable 简介
- 初入Python继承
- Understanding JavaScript Function Invocation and ";this";
- crm维护踩坑记(一)
- Mysql连接问题:com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException
- VS Less Compiler插件使用
- java 随机出题四则运算
- 解决win7 win10上网卡慢问题
- 原生table相关写法
- 转载:Java项目读取配置文件时,FileNotFoundException 系统找不到指定的文件,System.getProperty(";user.dir";)的理解
- Notes of Daily Scrum Meeting(12.17)
- Datagridview 在基于文本的单元格中启用换行,自动调整行高列宽
热门文章
- Oracle的闪回特性之恢复truncate删除表的数据
- font-face自定义字体使用方法
- bzoj 1119 [POI2009]SLO &;&; bzoj 1697 [Usaco2007 Feb]Cow Sorting牛排序——思路(置换)
- RK3288 dts文件中背光配置参数
- FPGA中RAM使用探索
- 1132 Cut Integer
- ubuntu安装composer
- 安卓端后台登录接口单元测试demo
- Py修行路 python基础 (五)三元运算 字符编码 元组 集合 三级菜单优化!
- js实现的点击div区域外隐藏div区域