XmlDocument类

XmlDocument类是.NET框架的DOC解析器。XmlDocument将XML视为树状结构,它装载XML文档,并在内存中构建该文档的树状结构。下面来看下XmlDocument提供了哪些功能。

  一、属性:

Attributes      获取一个 XmlAttributeCollection,它包含该节点的属性。 (继承自 XmlNode。) BaseURI          获取当前节点的基 URI。 (重写 XmlNode..::.BaseURI。) ChildNodes      获取节点的所有子节点。 (继承自 XmlNode。) DocumentElement   获取文档的根 XmlElement。  DocumentType    获取包含 DOCTYPE 声明的节点。  FirstChild       获取节点的第一个子级。 (继承自 XmlNode。) HasChildNodes     获取一个值,该值指示节点是否有任何子节点。 (继承自 XmlNode。) Implementation     获取当前文档的 XmlImplementation 对象。  InnerText        获取或设置节点及其所有子节点的串联值。 (继承自 XmlNode。) InnerXml       获取或设置表示当前节点子级的标记。 (重写 XmlNode..::.InnerXml。) IsReadOnly      获取一个值,该值指示当前节点是否是只读的。 (重写 XmlNode..::.IsReadOnly。) Item          已重载。  LastChild       获取节点的最后一个子级。 (继承自 XmlNode。) LocalName       获取节点的本地名称。 (重写 XmlNode..::.LocalName。) Name         获取节点的限定名。 (重写 XmlNode..::.Name。) NamespaceURI    获取该节点的命名空间 URI。 (继承自 XmlNode。) NameTable      获取与此实现关联的 XmlNameTable。  NextSibling       获取紧接在该节点之后的节点。 (继承自 XmlNode。) NodeType       获取当前节点的类型。 (重写 XmlNode..::.NodeType。) OuterXml        获取表示此节点及其所有子节点的标记。 (继承自 XmlNode。) OwnerDocument   获取当前节点所属的 XmlDocument。 (重写 XmlNode..::.OwnerDocument。) ParentNode       已重载。  Prefix          获取或设置该节点的命名空间前缀。 (继承自 XmlNode。) PreserveWhitespace  获取或设置一个值,该值指示是否在元素内容中保留空白。  PreviousSibling    获取紧接在该节点之前的节点。 (继承自 XmlNode。) SchemaInfo      返回节点的后架构验证信息集 (PSVI)。 (重写 XmlNode..::.SchemaInfo。) Schemas       获取或设置与此 XmlDocument 关联的 XmlSchemaSet 对象。  Value         获取或设置节点的值。 (继承自 XmlNode。) XmlResolver      设置 XmlResolver 以用于解析外部资源。

二、方法

AppendChild              将指定的节点添加到该节点的子节点列表的末尾。 (继承自 XmlNode。) Clone                   创建此节点的一个副本。 (继承自 XmlNode。) CloneNode               创建此节点的一个副本。 (重写 XmlNode..::.CloneNode(Boolean)。) CreateAttribute            已重载。 创建具有指定名称的 XmlAttribute。  CreateCDataSection         创建包含指定数据的 XmlCDataSection。  CreateComment           创建包含指定数据的 XmlComment。  CreateDefaultAttribute         创建具有指定前缀、本地名称和命名空间 URI 的默认属性。  CreateDocumentFragment        创建 XmlDocumentFragment。  CreateDocumentType          返回新的 XmlDocumentType 对象。  CreateElement             已重载。 创建 XmlElement。  CreateEntityReference          创建具有指定名称的 XmlEntityReference。  CreateNavigator            已重载。 创建一个用于导航此文档的新 XPathNavigator 对象。  CreateNode              已重载。 创建 XmlNode。  CreateProcessingInstruction     创建一个具有指定名称和数据的 XmlProcessingInstruction。  CreateSignificantWhitespace     创建一个 XmlSignificantWhitespace 节点。  CreateTextNode           创建具有指定文本的 XmlText。  CreateWhitespace          创建一个 XmlWhitespace 节点。  CreateXmlDeclaration         创建一个具有指定值的 XmlDeclaration 节点。  GetElementById           获取具有指定 ID 的 XmlElement。  GetElementsByTagName        已重载。 返回一个 XmlNodeList,它包含与指定名称匹配的所有子代元素的列表。  GetEnumerator            提供对 XmlNode 中节点上“for each”样式迭代的支持。 (继承自 XmlNode。) GetHashCode              用作特定类型的哈希函数。 (继承自 Object。) GetNamespaceOfPrefix         查找当前节点范围内离给定的前缀最近的 xmlns 声明,并返回声明中的命名空间 URI。 (继承自 XmlNode。) GetPrefixOfNamespace         查找当前节点范围内离给定的命名空间 URI 最近的 xmlns 声明,并返回声明中定义的前缀。 (继承自 XmlNode。) ImportNode             将节点从另一个文档导入到当前文档。  InsertAfter               将指定的节点紧接着插入指定的引用节点之后。 (继承自 XmlNode。) InsertBefore             将指定的节点紧接着插入指定的引用节点之前。 (继承自 XmlNode。) Load                  已重载。 从 Stream、URL、TextReader 或 XmlReader 加载指定的 XML 数据。  LoadXml                从指定的字符串加载 XML 文档。  Normalize              将此 XmlNode 下子树完全深度中的所有 XmlText 节点都转换成“正常”形式,在这种形式中只有标记(即标记、注释、处理指令、                    CDATA 节和实体引用)分隔 XmlText 节点,也就是说,没有相邻的 XmlText 节点。 (继承自 XmlNode。) PrependChild             将指定的节点添加到该节点的子节点列表的开头。 (继承自 XmlNode。) ReadNode               根据 XmlReader 中的信息创建一个 XmlNode 对象。读取器必须定位在节点或属性上。  RemoveAll               移除当前节点的所有子节点和/或属性。 (继承自 XmlNode。) RemoveChild             移除指定的子节点。 (继承自 XmlNode。) ReplaceChild             用 newChild 节点替换子节点 oldChild。 (继承自 XmlNode。) Save                 已重载。 将 XML 文档保存到指定的位置。  SelectNodes              已重载。  SelectSingleNode           已重载。  Supports               测试 DOM 实现是否实现特定的功能。 (继承自 XmlNode。) Validate               已重载。 验证 XmlDocument 是不是 Schemas 属性中包含的 XML 架构定义语言 (XSD) 架构。  WriteContentTo           将 XmlDocument 节点的所有子级保存到指定的 XmlWriter 中。 (重写 XmlNode..::.WriteContentTo(XmlWriter)。) WriteTo               将 XmlDocument 节点保存到指定的 XmlWriter。 (重写 XmlNode..::.WriteTo(XmlWriter)。)

三、事件

NodeChanged        当属于该文档的节点的 Value 已被更改时发生。 NodeChanging       当属于该文档的节点的 Value 将被更改时发生。  NodeInserted         当属于该文档的节点已被插入另一个节点时发生。  NodeInserting        当属于该文档的节点将被插入另一个节点时发生。  NodeRemoved        当属于该文档的节点已被从其父级移除时发生。  NodeRemoving       当属于该文档的节点将被从文档中移除时发生。

助记属性:

PreviousSibling  上一个兄弟节点 NextSibling    下一个兄弟节点 FirstChild     第一个子节点 LastChild     最后一个子节点 ChildNodes    子节点集合 ParentNode     父节点

代码示例:

xml文档:

<?xml version="1.0" encoding="utf-8" ?>
<Article> <author age="30">张三</author> <length>12000</length> <price>42</price> </Article>

代码:

复制代码
        static void Main(string[] args){XmlDocument doc = new XmlDocument(); doc.Load(@"C:\Users\Administrator\Desktop\ConsoleApplication1\ConsoleApplication1\Test.xml"); //先获取一个唯一的Article节点,再获取其下的第一个子节点 然后再获取该节点下的属性集合 XmlAttributeCollection xc = doc.SelectSingleNode("Article").FirstChild.Attributes; string age = xc[0].Value; //不过是一个定制的集合罢了,还是集合那套东西 //string age = xc["age"].Value; 支持两种索引访问 Console.WriteLine(age); //输出30 string baseuri = doc.SelectSingleNode("Article").FirstChild.BaseURI; Console.WriteLine(baseuri); //输出 file:///C:\Users\Administrator\Desktop\ConsoleApplication1\ConsoleApplication1\Test.xml  XmlNodeList listNode = doc.SelectSingleNode("Article").ChildNodes; //获取Article节点下的所有节点列表 for (int i = 0; i < listNode.Count;i++ ) //XmlNodeList不支持foreach遍历,只能用for  { Console.Write(listNode[i].Name + " : " + listNode[i].InnerText); //输出 author:张三 length:12000 price:30 Name获取的是限定名,也就是标记名称  } XmlElement xe = doc.DocumentElement; //获取根节点 Console.WriteLine(xe.Name); //输出 Article //XmlDocumentType xdt = doc.DocumentType; //获取包含 DOCTYPE 声明的节点。应该是由DTD限定的节点。 //Console.Write(xdt.Name); //此处报 未将对象引用设置到对象的实例,因为找不到有DOCTYPE声明的元素  Console.WriteLine(doc.HasChildNodes); //输出 True 当前Document是否包含子节点。 //XmlImplementation xi = doc.Implementation; //不懂怎么用 //xi.ToString();  Console.WriteLine(doc.InnerText); //获取当前文档的内容 输出 张三 12000 30 Console.WriteLine(doc.InnerXml); //输出 整个Xml文件的字符串内容 Console.WriteLine(doc.IsReadOnly); //获取当前文档是否是只读的。输出 False XmlNode node = doc.LastChild; Console.WriteLine(node.InnerText); //输出 张三 12000 30 因为最后一个节点是Article节点,输出Article节点的所有内容 Console.WriteLine(doc.LocalName); //输出 #document Console.WriteLine(doc.SelectSingleNode("Article").Name); //输出Article Console.WriteLine(doc.SelectSingleNode("Article").FirstChild.NextSibling.Name); //length author的下一个兄弟节点 是length XmlNodeType xnt = doc.SelectSingleNode("Article").NodeType; Console.WriteLine(xnt); //输出Element,表明该节点是元素节点 string str = doc.SelectSingleNode("Article").OuterXml; //此节点及其所有自己点标记,输出Article节点的所有内容 <Article>省略...</Article>  Console.WriteLine(str); XmlDocument x = new XmlDocument(); x.LoadXml(str); Console.WriteLine(doc.SelectSingleNode("Article").OwnerDocument); //获取该节点所属的XmlDocument XmlNode xn = doc.SelectSingleNode("Article").LastChild.ParentNode; //ParentNode获取直接父节点。 Console.WriteLine(xn.Name); //输出 Article  Console.WriteLine(doc.PreserveWhitespace); //是否保留空白 输出False XmlNode xn1 = doc.SelectSingleNode("Article").LastChild.PreviousSibling; Console.WriteLine(xn1.Name); //输出length 的确是最后一个节点的前一个节点。  Console.ReadKey(); }
复制代码

   为了更加好的展示一些属性,现在将xml换成这样:

复制代码
<?xml version="1.0" encoding="utf-8" ?>
<h:Article xmlns:h = "http://www.xxx.com/"> <!--默认命名空间--> <h:author age="30">张三</h:author> <h:length>12000</h:length> <h:price>42</h:price> </h:Article>
复制代码

   代码如下:

复制代码
        static void Main(string[] args){XmlDocument doc = new XmlDocument(); doc.Load(@"C:\Users\Administrator\Desktop\ConsoleApplication1\ConsoleApplication1\Test.xml"); XmlNamespaceManager xnm = new XmlNamespaceManager(doc.NameTable); xnm.AddNamespace("h", "http://www.xxx.com/"); XmlNode Article = doc.SelectSingleNode("h:Article", xnm); string namespace1 = Article.InnerText; Console.WriteLine(namespace1); //输出 张三 12000 30  Console.WriteLine(Article.Prefix); //输出 h 获取当前节点的前缀 Console.WriteLine(Article.NamespaceURI); //输出 http://www.xxx.com/123 获取当前节点所在的命名空间  Console.WriteLine(Article.FirstChild.Name + "---" + Article.FirstChild.Value + "---" + Article.FirstChild.LocalName); //以上一行代码输出 h:author------author //SchemaInfo 返回节点的后架构验证信息集 (PSVI)。//Value 获取或设置节点的值。 (继承自 XmlNode。) //XmlResolver 设置 XmlResolver 以用于解析外部资源。  Console.ReadKey(); }
复制代码

再来一个展示一下Schemas这个常用的属性

复制代码
        static void Main(string[] args){XmlDocument doc = new XmlDocument();    //创建文档 doc.Schemas.Add(null, @"C:\Users\Administrator\Desktop\ConsoleApplication1\ConsoleApplication1\person.xsd"); //添加一个架构对象到本XmlDocument doc.Load(@"C:\Users\Administrator\Desktop\ConsoleApplication1\ConsoleApplication1\person.xml"); //加载xml文件 Console.WriteLine(doc.Schemas.Count); //输出1 就是第二行添加的那个  Console.WriteLine(doc.SchemaInfo.MemberType); //XmlResolver 设置 XmlResolver 以用于解析外部资源。  Console.ReadKey(); }
复制代码

    下面来试下XmlDocument的方法

    Test.xml的代码如下:
复制代码
<?xml version="1.0" encoding="utf-8" ?>
<bookstore> <book> <id>1</id> <title lang="属性1">三国演义</title> <author>罗贯中</author> <year>2005</year> <price id='a1"'>38.5</price> </book> <book> <id>2</id> <title lang="属性2">西游记</title> <author>吴承恩</author> <year>2004</year> <price>37.5</price> </book> </bookstore>
复制代码

     主程序代码如下:

复制代码
        static void Main(string[] args){XmlDocument doc = new XmlDocument();    //创建文档 doc.Load(@"C:\Users\Administrator\Desktop\ConsoleApplication1\ConsoleApplication1\Test.xml"); //加载xml文件  XmlNode node1 = doc.CreateNode(XmlNodeType.Element, "pagecount", null); node1.InnerText = "222"; doc.SelectSingleNode("/bookstore").AppendChild(node1); //执行之后 <pagecount>222</pagecount>元素被添加到</bookstore>前面 doc.Save(@"D:\123.xml"); XmlNode node2 = doc.SelectSingleNode("/bookstore/book[1]/title[1]").Clone(); //克隆一个节点出来 Console.WriteLine(node2.InnerText); //输出三国演义  XmlNode node3 = doc.SelectSingleNode("/bookstore/book[1]/title[1]").CloneNode(true); //参数决定是否克隆子节点数(如果false,文本节点也不克隆) Console.WriteLine(node3.InnerText); //输出三国演义  XmlAttribute attr = doc.CreateAttribute("age"); //创建一个age属性 attr.Value = "23"; doc.SelectSingleNode("/bookstore/book[1]/author[1]").Attributes.Append(attr); //执行之后第一个作者变为 <author age="23">罗贯中</author> doc.Save(@"D:\123.xml"); XmlCDataSection cdata = doc.CreateCDataSection("我&你"); doc.SelectSingleNode("/bookstore/book[1]/author[1]").AppendChild(cdata); //执行之后author变为<author age="23">罗贯中<![CDATA[我&你]]></author> doc.Save(@"D:\123.xml"); XmlComment com = doc.CreateComment("2013-2-27 22:37:25"); doc.SelectSingleNode("/bookstore/book[1]/title[1]").AppendChild(com); //执行之后title变为<title lang="属性1">三国演义<!--2013-2-27 22:37:25--></title> doc.Save(@"D:\123.xml"); XmlDocument doc1 = new XmlDocument(); XmlDocumentFragment xdf = doc1.CreateDocumentFragment(); //一个xml片段,这个类敢情好用 xdf.InnerXml = "<item>widget</item>"; doc1.AppendChild(xdf); Console.WriteLine(doc1.OuterXml); //输出<item>widget</item> //CreateDefaultAttribute        创建具有指定前缀、本地名称和命名空间 URI 的默认属性。 //CreateDocumentType        返回新的 XmlDocumentType 对象。  XmlDocument doc2 = new XmlDocument(); XmlElement element = doc2.CreateElement("title"); //创建一个title 如果现在保存是输出<title/> 因为还没有内容  doc2.AppendChild(element); XmlEntityReference xer = doc2.CreateEntityReference("h"); doc2.LastChild.AppendChild(xer); Console.WriteLine(doc2.OuterXml); //输出</title>&h;</title>  XPathNavigator nav = doc2.CreateNavigator(); //一个通过光标的导航模型遍历XML文档的数据  XmlText text = doc2.CreateTextNode("你好啊"); //创建一个文本节点 doc2.SelectSingleNode("/title").AppendChild(text); Console.WriteLine(doc2.OuterXml); //输出</title>&h;你好啊</title>  XmlWhitespace xws = doc2.CreateWhitespace(" "); //创建一个空白节点 doc2.SelectSingleNode("/title").AppendChild(xws); Console.WriteLine(doc2.OuterXml); //输出</title>&h;你好啊 </title>  XmlDeclaration xd = doc2.CreateXmlDeclaration("1.0", "utf-8", "yes"); //xml头 XML声明部分 XmlNode root = doc2.SelectSingleNode("/title"); doc2.InsertBefore(xd, root); Console.WriteLine(doc2.OuterXml); //执行之后 在头部加入了<?xml version="1.0" encoding="utf-8" standalont="yes"?>  XmlSignificantWhitespace xsw = doc2.CreateSignificantWhitespace(" "); XmlElement ele = doc2.CreateElement("white"); ele.InnerText = "空白啊空白"; ele.AppendChild(xsw); doc2.SelectSingleNode("/title").AppendChild(ele); Console.WriteLine(doc2.OuterXml); //还是添加一大堆空白,不知道与CreateWhitespace有什么区别  XmlDocument doc3 = new XmlDocument(); String PItext = "type='text/xsl' href='book.xsl'"; XmlProcessingInstruction newPI = doc3.CreateProcessingInstruction("xml-stylesheet", PItext); doc3.AppendChild(newPI); Console.WriteLine(doc3.OuterXml); //输出 <?xml-stylesheet type="text/xsl" hred="book.xsl"?> //GetElementById           获取具有指定 ID 的 XmlElement。 //GetElementsByTagName       已重载。 返回一个 XmlNodeList,它包含与指定名称匹配的所有子代元素的列表。 //GetEnumerator            提供对 XmlNode 中节点上“for each”样式迭代的支持。 (继承自 XmlNode。) //GetNamespaceOfPrefix        查找当前节点范围内离给定的前缀最近的 xmlns 声明,并返回声明中的命名空间 URI。 (继承自 XmlNode。) //GetPrefixOfNamespace        查找当前节点范围内离给定的命名空间 URI 最近的 xmlns 声明,并返回声明中定义的前缀。 (继承自 XmlNode。) //ImportNode             将节点从另一个文档导入到当前文档。 //InsertAfter              将指定的节点紧接着插入指定的引用节点之后。 (继承自 XmlNode。) //InsertBefore             将指定的节点紧接着插入指定的引用节点之前。 (继承自 XmlNode。) //LoadXml               从指定的字符串加载 XML 文档。 //Normalize              将此 XmlNode 下子树完全深度中的所有 XmlText 节点都转换成“正常”形式,在这种形式中只有标记(即标记、注释、处理指令、                    CDATA 节和实体引用)分隔 XmlText 节点,也就是说,没有相邻的 XmlText 节点。 (继承自 XmlNode。) //PrependChild             将指定的节点添加到该节点的子节点列表的开头。 (继承自 XmlNode。) //ReadNode              根据 XmlReader 中的信息创建一个 XmlNode 对象。读取器必须定位在节点或属性上。 //RemoveAll              移除当前节点的所有子节点和/或属性。 (继承自 XmlNode。) //RemoveChild             移除指定的子节点。 (继承自 XmlNode。) //ReplaceChild             用 newChild 节点替换子节点 oldChild。 (继承自 XmlNode。) //Supports               测试 DOM 实现是否实现特定的功能。 (继承自 XmlNode。) //Validate               已重载。 验证 XmlDocument 是不是 Schemas 属性中包含的 XML 架构定义语言 (XSD) 架构。 //WriteContentTo           将 XmlDocument 节点的所有子级保存到指定的 XmlWriter 中。 (重写 XmlNode..::.WriteContentTo(XmlWriter)。) //WriteTo               将 XmlDocument 节点保存到指定的 XmlWriter。 (重写 XmlNode..::.WriteTo(XmlWriter)。)  Console.ReadKey(); }
复制代码

转载于:https://www.cnblogs.com/1175429393wljblog/p/4441150.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/431878.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java类作用域标识符_java入门 (二) 标识符、数据类型、类型转换、变量、常量、作用域...

java入门(二)标识符数据类型类型转换变量、常量、作用域本次笔记引用B站&#xff1a;狂神说,虽然早就会了&#xff0c;现在回头来敲下基础&#xff0c;加深印象1.标识符&#xff1a;java所有的组成部分都需要名字。类名丶变量名丶方法名统称为标识符。标识符大小写敏感。不能使…

0421 AutoLayout的实践/基本使用

历史:从iOS 6开始 ,之前都是3.5英寸没有考虑到适配.iPhone5 变成了4英寸,所以推出了Auto Layout理解: 另外一个体系,去描述位置.像素:点: // 勘误: 图中的像素应为 “点"// 写上以上代码,就可以删掉系统创建的控制器和storyBoard了.// 创建控制器,勾选Xib[]拖一个uiview背…

java 圆形按钮,如何在Java中创建圆形的JButton?

I want to create rounded JButton in Java...For that I use rounded image and placed that image on button but I didnt get rounded button..please any one can tell how to create rounded button in Java like show in below figure..thanks in advance.....解决方案If…

Python学习 Day 3 字符串 编码 list tuple 循环 dict set

字符串和编码 字符 ASCII Unicode UTF-8 A 1000001 00000000 01000001 1000001 中 x 01001110 00101101 11100100 10111000 10101101 格式化 在Python中&#xff0c;采用的格式化方式和C语言是一致的&#xff0c;用%实现&#xff0c;举例如下&#xff1a; >>&…

java 高飞_高飞(土木与水利工程学院)老师 - 合肥工业大学

高飞高飞老师的简历姓名:高飞 性别:男 出生年月:1962.11最终学位:硕士 毕业院校:合肥工业大学职称:教授 职务:副院长电话:0551-2901441,13705510744E-mail:gaofeihfut.edu.cn现从事专业:测绘科学与技术社会团体任职:1.全国高等学校测绘学科教学指导委员会,委员;2.中国测绘学会工…

jwPlayer为js预留的回调方法

参考地址&#xff1a;http://www.cnblogs.com/lori/archive/2014/05/05/3709459.html 应用场合 播放时记录当前视频的时间&#xff0c;播放完成时写入完成的时间&#xff0c;像这些功能&#xff0c;我们都可以通过事件回调的方法解决&#xff0c;即为events属性赋相应的值&…

java list 分组_Java 将List中的实体类按照某个字段进行分组并存

1、JDK1.8之前&#xff1a;假设有实体类User&#xff0c;里面有字段id&#xff0c;我们将相同id的User进行分组&#xff0c;并存放在Map中。(例子不是很恰当&#xff0c;但很能说明问题)public static void main(String[] args) {List list new ArrayList<>();list.add(…

UVa 11481 (计数) Arrange the Numbers

居然没有往错排公式那去想&#xff0c;真是太弱了。 先在前m个数中挑出k个位置不变的数&#xff0c;有C(m, k)种方案&#xff0c;然后枚举后面n-m个位置不变的数的个数i&#xff0c;剩下的n-k-i个数就是错排了。 所以这里要递推一个组合数和错排数。 顺便再复习一下错排递推公式…

java httpclient 关闭_【Java系列007】HttpClient调用:你考虑过关闭连接、并发了吗?...

你好&#xff01;我是miniluo&#xff0c;今天和你分享使用HttpClient过程中&#xff0c;未考虑释放连接和并发导致的坑。HttpClient在项目中还是比较常见的&#xff0c;主要都是通过GET或POST请求第三方以获取响应结果。前段时间还了解到也有企业用它来做爬虫。下面我们就从两…

UESTC_秋实大哥下棋 2015 UESTC Training for Data StructuresProblem I

I - 秋实大哥下棋 Time Limit: 3000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) Submit Status胜负胸中料已明&#xff0c;又从堂上出奇兵。秋实大哥是一个下棋好手&#xff0c;独孤求败的他觉得下棋已经无法满足他了&#xff0c;他开始研究一种新的…

java 6大原则_java 6大设计原则 一:观察者模式

解耦常用的模式OrderService.javaServicepublic class OrderService{AutowiredApplicationContext applicationContext ;public void saveOrder(){//1.创建订单System.out.println(“1.创建订单”)&#xff1b;OrderEvent event new OrderEvent("参数")application…

jbb是什么梗_子水是什么意思,子水命理

子水是十二地支之一&#xff0c;那么命中有子水的代表的是什么呢&#xff1f;适合什么方位呢&#xff1f;有什么喜忌吗&#xff1f;怎么分析你呢?现在金宝贝起名网为你介绍子水是什么意思,子水命理的相关文章。子水是什么意思,子水命理八字地支&#xff1a;子水是什么意思1、对…

IOS高级编程之二:IOS的数据存储与IO

一、应用程序沙盒 IOS应用程序职能在系统为该应用所分配的文件区域下读写文件&#xff0c;这个文件区域就是应用程序沙盒。所有的非代码文件如&#xff1a;图片、声音、映象等等都存放在此。 在mac中command&#xff0b;shift&#xff0b;G命令&#xff0c;然后输入users/用户名…

安卓投屏大师_苹果,安卓手机如何免费投屏?只要悄悄按下这里,便能轻松实现...

现在很多手机都有自带投屏功能&#xff0c;这样一来我们便可以将所看的视频&#xff0c;所玩的游戏投屏到电脑或电视上了&#xff0c;当然也需要这些设备支持投屏才行。一、无线投屏1、苹果手机苹果手机的投屏功能在哪里呢&#xff1f;只要打开苹果手机从下往上滑动&#xff0c…

b站电脑客户端_如何将B站的flv格式的视频转换成mp4格式

经常看到B站有精彩的视频片段&#xff0c;于是想把这些视频下载保存到电脑&#xff0c;但是发现没有下载按钮&#xff0c;是不是很悲催。有些时候想从优酷、土豆网这些视频网站下载视频&#xff0c;结果却提示要先下载视频客户端才能继续下载视频&#xff0c;运气差的话&#x…

asp.net 设置 excel alignment_教你如何用Python轻轻松松操作Excel、Word、CSV,一文就够了,赶紧码住!!!...

作者&#xff1a;奈何缘浅wyjhttps://juejin.im/post/6868073137263607821Python 操作 Excel常用工具数据处理是 Python 的一大应用场景&#xff0c;而 Excel 又是当前最流行的数据处理软件。因此用 Python 进行数据处理时&#xff0c;很容易会和 Excel 打起交道。得益于前人的…

java 页面输出一个页面_java学习之:一个完整页面输出信息的过程(以输出Doctor表中信息为例)...

最近在练习java程序&#xff0c;总结一下从数据库查询信息并输出到jsp页面的过程。主要数据处理在src.cn.javatest包下面项目预览1&#xff0c;配置项目根目录src目录下的druid.properties数据库信息(相当于一个数据库配置文件)里面的信息可以在下载druid中获得&#xff0c;只需…

[xsd学习]xsd介绍

一直以来项目中对xml格式的判断使用的都是dtd格式&#xff0c;直到最近才发现&#xff0c;不知何时都已经转为xsd来进行判断和校验&#xff0c;于是今天专门找资料看下&#xff0c;不得不说&#xff0c;对于这类资料的入门&#xff0c;w3cschool真是个不错的资料库&#xff0c;…

教学目标四个维度_【深度好文】体育教案中的教学目标与学习目标应如何表述...

体育教师大本营教学/训练/职业/成长强 烈 建 议 大 家 星 标 我 们教 学 路 上 ☆ 不 离 不 弃在以往看到的体育课的教案上&#xff0c;目标部分不是用教学目标就是用学习目标来表述&#xff0c;然而&#xff0c;这两种目标表达形式有没有本质区别&#xff1f;分别该如何表述…

java中检查性异常类_Java异常处理、java语言推崇使用检查类型异常

异常处理是java语言的重要特性之一&#xff0c;《Three Rules for effective Exception Handling》一文中是这么解释的&#xff1a;它主要帮助我们在debug的过程中解决下面的三个问题。什么出错了哪里出错了为什么出错java语言可以说是提供了过于完善的异常处理机制&#xff0c…