二度xml<一>
又一次学习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不用。他们编译是完全一样的!
二度xml<一>的更多相关文章
- 二度Xml<2>
一下介绍xml的基本操作,添加xml新节点: 其他方法在前一篇日记中有详细讲解,请详见:http://www.cnblogs.com/fjsnail/archive/2012/10/20/273212 ...
- MapReduce实现二度好友关系
一.问题定义 我在网上找了些,关于二度人脉算法的实现,大部分无非是通过广度搜索算法来查找,犹豫深度已经明确了2以内:这个算法其实很简单,第一步找到你关注的人:第二步找到这些人关注的人,最后找出第二步结 ...
- 海量数据的二度人脉挖掘算法(Hadoop 实现)
最近做了一个项目,要求找出二度人脉的一些关系,就好似新浪微博的“你可能感兴趣的人” 中,间接关注推荐:简单描述:即你关注的人中有N个人同时都关注了 XXX . 在程序的实现上,其实我们要找的是:若 U ...
- 依据二度人脉推荐好友sql
friend表结构 DROP TABLE IF EXISTS FRIEND; create table friend( uid bigint not null comment ' ...
- 二度云抢先成为首批中国工信部(.vip/.xyz/.club)域名注册管理机构
今天,工信部官网的公示文件显示,新通用顶级域名.vip..xyz以及.club域名注册局已正式获得工信部审批,成为中国境内合法的顶级域名注册管理机构,这标志着.vip..xyz以及.club域名成为首 ...
- 基于Spark GraphX计算二度关系
关系计算问题描述 二度关系是指用户与用户通过关注者为桥梁发现到的关注者之间的关系.目前微博通过二度关系实现了潜在用户的推荐.用户的一度关系包含了关注.好友两种类型,二度关系则得到关注的关注.关注的好友 ...
- 使用MapReduce实现二度人脉搜索算法
一,背景介绍 在新浪微博.人人网等社交网站上,为了使用户在网络上认识更多的朋友,社交网站往往提供类似“你可能感兴趣的人”.“间接关注推荐”等好友推荐的功能,其中就包含了二度人脉算法. 二,算法实现 原 ...
- 可扩展标记语言XML之二:XML语言格式规范、文档组成
大家好,小乐又来了,好久不见!这次接着上次可扩展标记语言XML之一:XML概念,作用,示例,继续讲述XML. 一.格式良好的 xml 1.语法规范: 1).必须有 XML 文档声明: <?xml ...
- Spark 计算人员二度关系
1.一度人脉:双方直接是好友 2.二度人脉:双方有一个以上共同的好友,这时朋友网可以计算出你们有几个共同的好友并且呈现数字给你.你们的关系是: 你->朋友->陌生人 3.三度人脉:即你朋友 ...
随机推荐
- 一个工程实例来学习 Makefile
March 3, 2015 8:19 PM Makefile 文件的编写 学习前的准备 需要准备的工程目录结构如下: . ├── add │ ├── add_float.c │ ├── add ...
- webstorm设置修改文件后自动编译并刷新浏览器页面
转载:http://www.cnblogs.com/ssrsblogs/p/6155747.html 重装了 webstorm ,从10升级到了2016 一升不要紧,打开老项目,开启webpakc-d ...
- Appium+python自动化29-toast消息(亲测 ok)
本篇转自博客:上海-悠悠 前言 appium1.5以后的版本才支持toast定位,并且 'automationName'得设置为'Uiautomator2',才能捕获到. 一. Supported P ...
- 杂项:UN-标准通用置标语言
ylbtech-杂项:标准通用置标语言 1.返回顶部 2.返回顶部 3.返回顶部 4.返回顶部 5.返回顶部 6.返回顶部 7.返回顶部 8.返回顶部 9.返回顶部 ...
- 1142 Maximal Clique
题意:给出一个图,定义这样一个结点子集subset,若subset中的任意两结点不都相邻,则称之为Not a Clique:若subset中的任意两结点都相邻,则称之为Clique:若subset中的 ...
- jQ版大图滚动
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...
- python's ninteenth day for me 类的组合,继承。
组合: 表示一个类的对象作为另一个类对象的属性. 实例化的过程: 1,创建一个对象. 2,__init__ 给对象添加一些属性,对象默认的名字为self. 3,将self所指向的内存空间返回给实例化他 ...
- js是这样判断值的数据类型的
js如何判定给定值的数据类型? typeof typeof "a" // "string" typeof 1 // "number" typ ...
- java - 输入的字符串中是否包含中文
今天和同事在讨论一个问题,需要检查“输入的字符串中是否包含中文”,刚开始想到是用正则表达式,正则表达式中是以[u4e00-u9fa5]来全匹配字符是否是中文,但现在面临的问题是这个字符串中还可能包含英 ...
- 安装glibc-2.14
下载glibc-2.14.tar.gz 解压: [root@jrgc130 software]# tar xf glibc-2.14.tar.gz [root@jrgc130 software]# c ...