二度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.三度人脉:即你朋友 ...
随机推荐
- 根据当前日期算前一年、前一月、前一天(java基础)
问题的本身没有什么难度,但是要想一下子找到一个现成的方法还真不是那么容易,本来以为java.util.Date中会有方法结果找了半天没找到,最后还是在Calendar中找到了,记下别忘了!! 核心:使 ...
- 杂项-公司:摩根大通百科-un
ylbtech-杂项-公司:摩根大通百科 摩根大通集团(JPMorgan Chase & Co,NYSE:JPM:),2000年12月由J.P.摩根公司和大通-曼哈顿公司合并而成,是美国主要的 ...
- 杂项:WiKi
ylbtech-杂项:WiKi Wiki是一种在网络上开放且可供多人协同创作的超文本系统,由沃德·坎宁安于1995年首先开发,这种超文本系统支持面向社群的协作式写作,同时也包括一组支持这种写作.沃德· ...
- 在液晶屏里显示浮点数的方法 (sprintf 的妙用)
思路:使用 sprintf 函数将浮点型数据转为指定格式的字符串 #include <stdio.h> #include<string.h> int main() { unsi ...
- oracle记录错误存储过程
CREATE OR REPLACE PROCEDURE SP_ERROR_LOGS_PRO(v_pro_name VARCHAR2, v_step_name VARCHAR2, v_date VARC ...
- 使用Kismet进行网络扫描
执行命令启动Kismet root@sch01ar:~# kismet 这个界面是用来设置颜色的,单击Yes按钮,默认颜色灰色 这个界面显示正在使用root用户运行Kismet工具,单击OK 这个界面 ...
- Python遍历列表删除多个列表元素
在遍历list的时候,删除符合条件的数据,结果不符合预期 num_list = [1, 2, 2, 2, 3] print(num_list) for item in num_list: if ite ...
- wireshark怎么抓包、wireshark抓包详细图文教程(转)
wireshark怎么抓包.wireshark抓包详细图文教程 wireshark是非常流行的网络封包分析软件,功能十分强大.可以截取各种网络封包,显示网络封包的详细信息.使用wireshark的人必 ...
- 11-EasyNetQ之多态发布和订阅
你能够订阅一个接口,然后发布基于这个接口的实现. 让我们看下一个示例.我有一个接口IAnimal和两个实现Cat和Dog: public interface IAnimal { string Name ...
- mysql中的 函数