,它会返回当前节点的所有子节点,不管什么什么类型,可以使用OfType来指定返回某个类型的节点,如IEnmerable comments = xd.Nodes().OfType();
,返回XComment
类型的节点
Elements
-所在类为XDocumet/XElement
,返回类型是IEnumerable
,它返回当前节点的XElement子节点,或所有具有某个 名字的子节点
Element
-所在类为XDocumet/XElement
,返回类型是Element
,它返回当前一个的Element子节点,或所有具有某个 名字的子节点
Descendants
-所在类为XElement
,返回类型是IEnumerable
,它返回所有的XElement
子代节点,或所有具有某个名字的XElement
子代节点,不管它们处于当前节点下嵌套的什么层次
DescendantsAndSelf
-所在类为XElement
,返回类型是IEnumerable
,和Descendants
一样,但是包括当前节点
Ancestors
-所在类为XElement
,返回类型是IEnumerable
,返回所有上级XElement
节点,或者所有具有某个名字的上级XElement
节点
AncestorsAndSelf
-所在类为XElement
,返回类型是IEnumerable
,和AncestorsAndSelf
一样,但是包括当前节点
Parent
-所在类为XElement
,返回类型是XElement
,返回当前节点的父节点
示例:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml.Linq;
namespace CodeForLinq
{
class Program
{
static void Main(string[] args)
{
//XDocument表示一个XML文档
//XElement表示一个XML元素
XDocument employees1 =
new XDocument(
//创建一个Employees根节点
new XElement("Employees",
//创建两个子节点
new XElement("Employee",
new XElement("Name", "Bob Smith"),
new XElement("PhoneNumber", "13161861814")),
new XElement("Employee",
new XElement("Name", "Sally Jones"),
new XElement("PhoneNumber", "13161861815"),
new XElement("PhoneNumber", "13161861816"))
));
//获取第一个名为"Employees"的子XElement
XElement root = employees1.Element("Employees");//其实就是根节点
IEnumerable employess = root.Elements();//根节点下所有的子节点
foreach (XElement emp in employess)
{
//获取第一个名为"Name"的子XElement
XElement empNameNode = emp.Element("Name");
Console.WriteLine(empNameNode.Value);
//获取第一个名为"PhoneNumber"的子XElement
IEnumerable empPhones = emp.Elements("PhoneNumber");
foreach (XElement phone in empPhones)
Console.WriteLine(phone.Value);
}
Console.ReadKey();
}
}
}
增加节点以及操作XML
可以使用Add
方法为现在元素增加子元素
Add
方法允许一次增加任意多个元素,不管增加的节点类型是什么类型
示例:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml.Linq;
namespace CodeForLinq
{
class Program
{
static void Main(string[] args)
{
//创建xml文档,并添加一个根节点一个子节点
XDocument xd = new XDocument(
new XElement("root",
new XElement("first")
)
);
Console.WriteLine("Origianl tree");
Console.WriteLine(xd);//展示一下目前的树结构
Console.WriteLine();
//获取第一个元素
XElement rt = xd.Element("root");
//添加子元素
rt.Add(new XElement("second"));
//连续添加三个元素
rt.Add(
new XElement("thrid"),
new XElement("fourth"),
new XElement("fifth")
);
//Add方法会把新添加的子节点放到已有的子节点之后
Console.WriteLine("Modified tree");
Console.WriteLine(xd);
Console.ReadKey();
}
}
}
其他常用方法
AddFirst - 在当前既有的子节点之前添加新的子节点
AddBeforeSelf - 在同级别的当前节点之前增加新的子节点
AddAfterSelf - 在同级别的当前节点之后增加新的子节点
Remove - 删除当前所选的节点及内容
RemoveNodes - 删除当前所先的的XElements及其内容
SetElement - 设置节点的内容
ReplaceContent - 替换节点的内容
使用XML特性(属性)
示例:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml.Linq;
namespace CodeForLinq
{
class Program
{
static void Main(string[] args)
{
XDocument xd = new XDocument(
new XElement("root",
new XAttribute("color","red"),
new XAttribute("size","large"),
new XElement("first"),
new XElement("second")
)
);
Console.WriteLine(xd);
Console.ReadKey();
}
}
}
输出:
XAttribute
在XElement
的构造中设置其属性值,第一个参数指定属性名,第二个参数指定属性值
再来看看获取特性值的示例:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml.Linq;
namespace CodeForLinq
{
class Program
{
static void Main(string[] args)
{
XDocument xd = new XDocument(
new XElement("root",
new XAttribute("color","red"),
new XAttribute("size","large"),
new XElement("first"),
new XElement("second")
)
);
Console.WriteLine(xd);
Console.WriteLine("---------");
XElement rt = xd.Element("root");
XAttribute color = rt.Attribute("color");
XAttribute size = rt.Attribute("size");
Console.WriteLine("颜色值:{0}",color.Value);
Console.WriteLine("大小值:{0}", size.Value);
Console.ReadKey();
}
}
}
输出:
---------
颜色值:red
大小值:large
移除特性
示例:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml.Linq;
namespace CodeForLinq
{
class Program
{
static void Main(string[] args)
{
XDocument xd = new XDocument(
new XElement("root",
new XAttribute("color","red"),
new XAttribute("size","large"),
new XElement("first"),
new XElement("second")
)
);
Console.WriteLine(xd);
Console.WriteLine("---------");
XElement rt = xd.Element("root");
//第一种移除方法
rt.Attribute("color").Remove();
//第二种移除方法
rt.SetAttributeValue("size", null);
Console.WriteLine(xd);
Console.ReadKey();
}
}
}
输出
---------
增加与修改特性值
示例:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml.Linq;
namespace CodeForLinq
{
class Program
{
static void Main(string[] args)
{
XDocument xd = new XDocument(
new XElement("root",
new XAttribute("color","red"),
new XAttribute("size","large"),
new XElement("first"),
new XElement("second")
)
);
Console.WriteLine(xd);
Console.WriteLine("---------");
XElement rt = xd.Element("root");
//修改特性值
rt.SetAttributeValue("color","green");
//添加一个新的特性
rt.SetAttributeValue("width", "narrow");
Console.WriteLine(xd);
Console.ReadKey();
}
}
}
输出:
---------
关于节点的其他类型
XComment - XML文档的注释;语法new XComment("这是一行注释")
XDeclaration - XML的版本号、字符编码类型等元数据,这叫XML声明 ;语法new XDeclaration("1.0","utf08","yes")
,对应结果为
XProcessingInstruction- XML的处理指令;语法new XProcessingInstruction ("xml-stylesheet",@"href=""stories"" type=""text/css""")
,对应结果为:
完整示例:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml.Linq;
namespace CodeForLinq
{
class Program
{
static void Main(string[] args)
{
XDocument xd = new XDocument(
new XDeclaration("1.0","utf08","yes"),
new XComment("这是一行注释"),
new XProcessingInstruction ("xml-stylesheet",@"href=""stories"" type=""text/css"""),
new XElement("root",
new XAttribute("color","red"),
new XAttribute("size","large"),
new XElement("first"),
new XElement("second")
)
);
Console.WriteLine(xd);
Console.ReadKey();
}
}
}
输出:
使用Linq to XML的Linq查询
示例一:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml.Linq;
namespace CodeForLinq
{
class Program
{
static void Main(string[] args)
{
XDocument xd = new XDocument(
new XDeclaration("1.0", "utf08", "yes"),
new XComment("这是一行注释"),
new XProcessingInstruction("xml-stylesheet", @"href=""stories"" type=""text/css"""),
new XElement("root",
new XAttribute("color", "red"),
new XAttribute("size", "large"),
new XElement("first",
new XAttribute("color", "red"),
new XAttribute("size", "large")
),
new XElement("second",
new XAttribute("color", "green"),
new XAttribute("size", "large")
),
new XElement("thrid",
new XAttribute("color", "yello"),
new XAttribute("size", "large")
)
)
);
xd.Save("Hello.xml");
Console.WriteLine(xd);
XDocument doc = XDocument.Load("Hello.xml");
XElement root = doc.Element("root");
var xyz = from e in root.Elements()
where e.Name.ToString().Length == 5 // 获取五个字符的元素
select e;
foreach (var item in xyz)
{
Console.WriteLine(item.Name.ToString());
}
Console.WriteLine("-------");
foreach (var item in xyz)
{
Console.WriteLine("Name:{0}, Color:{1}, Size:{2}",item.Name,item.Attribute("color").Value,item.Attribute("size").Value);
}
Console.ReadKey();
}
}
}
输出:
first
thrid
-------
Name:first, Color:red, Size:large
Name:thrid, Color:yello, Size:large
示例二:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml.Linq;
namespace CodeForLinq
{
class Program
{
static void Main(string[] args)
{
XDocument xd = new XDocument(
new XDeclaration("1.0", "utf08", "yes"),
new XComment("这是一行注释"),
new XProcessingInstruction("xml-stylesheet", @"href=""stories"" type=""text/css"""),
new XElement("root",
new XAttribute("color", "red"),
new XAttribute("size", "large"),
new XElement("first",
new XAttribute("color", "red"),
new XAttribute("size", "large")
),
new XElement("second",
new XAttribute("color", "green"),
new XAttribute("size", "large")
),
new XElement("thrid",
new XAttribute("color", "yello"),
new XAttribute("size", "large")
)
)
);
xd.Save("Hello.xml");
Console.WriteLine(xd);
Console.WriteLine("\n-------");
XDocument doc = XDocument.Load("Hello.xml");
XElement root = doc.Element("root");
var xyz = from e in root.Elements()
select new {e.Name, color=e.Attribute("color").Value };
foreach (var item in xyz)
{
Console.WriteLine(item);
}
Console.WriteLine("\n-------");
foreach (var item in xyz)
{
Console.WriteLine("{0,-6}, color:{1,-7}",item.Name,item.color);
}
Console.ReadKey();
}
}
}
输出:
-------
{ Name = first, color = red }
{ Name = second, color = green }
{ Name = thrid, color = yello }
-------
first , color:red
second, color:green
thrid , color:yello
你可能感兴趣的:(C#沉淀-Linq to XML实战)
5分钟掌握SQLite数据库操作?C#中的轻量级数据库解决方案
墨瑾轩
一起学学C#【二】 数据库 sqlite c#
关注墨瑾轩,带你探索编程的奥秘!超萌技术攻略,轻松晋级编程高手技术宝库已备好,就等你来挖掘订阅墨瑾轩,智趣学习不孤单即刻启航,编程之旅更有趣在现代软件开发中,选择合适的数据库对于应用程序的性能和可维护性至关重要。对于小型项目或嵌入式系统,轻量级且易于使用的SQLite是一个理想的选择。今天,我要为你详细介绍如何使用C#来操作SQLite数据库。通过本文,你将从头到尾了解如何创建、连接、插入、查询和
测试工程师必读~Manus 邀请码申请攻略 + DeepSeek 对比 + AI 工具在测试中的实战应用
Python测试之道
python 测试提效 python 人工智能 测试用例
测试工程师作为软件开发流程中的重要角色,面临越来越复杂的测试场景和更高的效率要求。如何快速定位Bug?如何生成高覆盖率的测试数据?如何优化性能测试?这些问题正在通过AI工具得到全新的解决方案。最近大火的ManusAI和专业化工具DeepSeek,为测试工程师提供了强有力的支持。本文将重点围绕测试工程师的工作场景,详细解析如何申请Manus邀请码,并对比其与DeepSeek的功能差异,同时结合实际工
大模型RAG入门到实战基础教程(非常详细),大模型RAG入门到精通,收藏这一篇就够了!
AI程序猿人
人工智能 AI大模型 AI RAG LLM 大语言模型 大模型入门
写在前面大模型(LargeLanguageModel,LLM)的浪潮已经席卷了几乎各行业,但当涉及到专业场景或行业细分域时,通用大模型就会面临专业知识不足的问题。相对于成本昂贵的“PostTrain”或“SFT”,基于RAG的技术方案往成为一种更优选择。本文从RAG架构入手,详细介绍相关技术细节,并附上一份实践案例。LLM的问题尽管LLM拥有令人印象深刻的能力,但是它们还面临着一些问题和挑战:幻觉
【Gee-Web框架】【Day6】【Golang】模板Template
行者无疆xcc
GeeWeb 前端 golang 开发语言
实现静态资源服务StaticResource支持HTML模板渲染一、服务端渲染1.简要说明前后端分离的开发模式,web后端提供RESTful接口,返回结构化的数据(通常是JSON或者XML),前端使用AJAX技术请求到所需的数据,利用JavaScript进行渲染。Vue/React等前端框架火热,优势突出后端专注解决资源利用、并发、数据库等问题,只需考虑数据如何生成前端专注界面设计实现,只需要考虑
【漏洞挖掘】——83、API接口安全问题刨析
FLy_鹏程万里
【WEB渗透】 安全 渗透测试 信息安全 网络安全 web渗透
文章前言在HW期间的目标信息收集阶段,我们时而会遇到WSDL(WebServicesDescriptionLanguage)的XML格式文件,其定义了Web服务的接口、操作、消息格式和协议细节,在WSDL文件中很多时候都会指定服务的端口类型(PortType)和绑定(Binding),绑定定义了如何使用SOAP协议进行通信以及消息的格式和传输细节,而这很多时候会被对此不是很了解的红队队员会直接进行
鸿蒙HarmonyOS编程开发实战:TCP客户端通讯示例
代码中的爱马仕
OpenHarmony 鸿蒙 HarmonyOS 网络 harmonyos tcp/ip 华为 前端 鸿蒙 鸿蒙开发
1.TCP简介TCP协议是传输层最重要的协议,提供了可靠、有序的数据传输,是多个广泛使用的表示层协议的运行基础,相对于UDP来说,TCP需要经过三次握手后才能建立连接,建立连接后才能进行数据传输,所以效率差了一些,但是它的发送-确认机制决定了传输是可靠的,再加上滑动窗口机制的设计,也可以极大的提高传输效率。2.TCP通讯的常用方法鸿蒙封装的TCP操作类位于模块socket中,使用如下的方式导入:i
Python 自然语言处理实战: NLTK 与 spaCy,文本分析的左右护法
清水白石008
python Python题库 python 自然语言处理 easyui
Python自然语言处理实战:NLTK与spaCy,文本分析的左右护法引言在信息爆炸的时代,文本数据以前所未有的速度增长,蕴藏着巨大的信息和价值。从社交媒体的评论,到浩如烟海的文档,文本数据无处不在,成为了解用户意图、挖掘商业情报、洞察社会趋势的关键来源。然而,文本数据本质上是非结构化的,计算机难以直接理解和处理。自然语言处理(NaturalLanguageProcessing,NLP)技术应运而
【04】基于STM32Fx的按键扫描与蜂鸣器控制简化版
智木芯语
【嵌语匠言】 stm32 单片机 嵌入式硬件
【04】基于STM32Fx的按键扫描与蜂鸣器控制简化版代码经实战检验,适合初学者,下面是独立按键扫描的详细过程:第一步:平时没有按键被触发时,按键的自锁标志,去抖动延时计数器一直被清零。第二步:一旦有按键被按下,去抖动延时计数器开始在定时中断函数里累加,在还没累加到阀值时,如果在这期间由于受外界干扰或者按键抖动,而使IO口突然瞬间触发成高电平,这个时候马上把延时计数器清零了,这个过程非常巧妙,非常
2025HW行动面试题20道全解析(附答案)黑客技术零基础入门到精通实战教程!
程序员七海
web安全 网络安全 干货分享 计算机 渗透测试 护网行动 黑客技术
HW行动作为国家级网络安全攻防演练的重要环节,对安全工程师的技术能力和实战经验提出了极高要求。本文结合近年护网面试高频考点与实战经验,整理出20道面试题及详细解析,涵盖渗透测试、漏洞分析、防御技术、应急响应等方向,助力从业者系统备战。一、基础概念与攻防技术什么是DDoS攻击?如何防御?答:DDoS攻击通过向目标发送海量请求耗尽资源,导致服务瘫痪。防御需结合流量清洗(CDN)、负载均衡、IPS/ID
数据挖掘实战-基于Catboost算法的艾滋病数据可视化与建模分析
艾派森
数据挖掘实战合集 python 人工智能 数据挖掘 信息可视化 数据分析
♂️个人主页:@艾派森的个人主页✍作者简介:Python学习者希望大家多多支持,我们一起进步!如果文章对你有帮助的话,欢迎评论点赞收藏加关注+目录1.项目背景2.数据集介绍
Keras深度学习实战——手写文字识别
鱼弦
机器学习设计类系统 深度学习 keras 人工智能
鱼弦:公众号【红尘灯塔】,CSDN博客专家、内容合伙人、新星导师、全栈领域优质创作者、51CTO(Top红人+专家博主)、github开源爱好者(go-zero源码二次开发、游戏后端架构https://github.com/Peakchen)Keras深度学习实战——手写文字识别1.介绍本教程将介绍如何使用Keras深度学习框架进行手写文字识别。手写文字识别是指将手写文字转换为相应的文本,该文本可
MySQL主从架构配合ShardingJdbc实现读写分离
eddie_k2
# ShardingJdbc MySQL mysql 架构 数据库
文章目录目录架构搭建读写分离pom.xmlfdy-live-user-provider模块application.ymlfdy-db-sharding.yamlShardingJdbcDatasourceAutoInitConnectionConfig.java目录架构搭建基于Docker去创建MySQL的主从架构读写分离pom.xmlmysqlmysql-connector-java${fdy-
C# 中的多线程同步机制:lock、Monitor 和 Mutex 用法详解
江沉晚呤时
前端 .netcore 后端 asp.net
在多线程编程中,线程同步是确保多个线程安全地访问共享资源的关键技术。C#提供了几种常用的同步机制,其中lock、Monitor和Mutex是最常用的同步工具。本文将全面介绍这三种同步机制的用法、优缺点以及适用场景,帮助开发者在多线程开发中做出合适的选择。1.lock关键字1.1概述在C#中,lock关键字是用于线程同步的最常用工具之一。lock是Monitor.Enter()和Monitor.Ex
React Native 0.78版本发布
wayne214
react native
这个版本在ReactNative中集成了React19,还带来了一些其他相关特性,比如原生支持Android矢量图形(AndroidVectordrawables),以及在iOS上更好的混合开发(brownfieldintegration)体验。亮点React19迈向更小巧、更快速的版本发布Metro中JavaScript日志的可选开启功能新增对AndroidXML图形资源的支持iOS上的Reac
springboot+es批量新增、批量修改、根据内部id批量查询
程序小增
elasticsearch spring boot java
pom.xml配置org.elasticsearch.clientelasticsearch-rest-high-level-client7.8.0elasticsearchorg.elasticsearchelasticsearch-rest-clientorg.elasticsearch.clientorg.springframework.bootspring-boot-starter-dat
深入理解 C# 中的 DTO(数据传输对象)
鲤籽鲲
C# c# 开发语言 C# 知识捡漏
总目录前言在软件开发中,特别是在分布式系统和微服务架构中,数据传输对象(DTO,DataTransferObject)是一个非常重要的设计模式。它用于简化数据在不同层或组件之间的传输过程,提高代码的可维护性和性能。本文将详细介绍C#中的DTO。一、什么是DTO?1.基本定义DTO是一种仅包含数据、不含业务逻辑的轻量级对象,其核心目标是在系统不同层级或组件之间高效、安全地传输数据。DTO将所需数据整
爬虫遇到一个标签有两个类名怎么办?
勇敢的牛马
爬虫 python xhtml pycharm selenium 测试工具 css
1.使用CSS选择器:BeautifulSoup的select方法支持使用CSS选择器来定位元素。对于具有多个类名的元素,可以将类名连接起来,并在每个类名前加上一个点(.),表示同时具有这些类的元素。frombs4importBeautifulSoup#假设html_content是包含目标HTML的字符串soup=BeautifulSoup(html_content,'lxml')divs=so
网络安全创刊 网络安全紫队
Hacker_Fuchen
web安全 网络 安全
目录基本概念攻防演习准备工作组织要素组织形式组织关键攻防演习不同阶段组织策划阶段前期准备阶段实战演习阶段应急演习阶段演习总结阶段演习风险规避措施如果错过互联网,与你擦肩而过的不仅仅是机会,而是整整一个时代。基本概念组织方。在演习中,负责演习组织,过程监控,技术指导,应急保障,风险控制,演习总结,技术措施与策略优化等工作。通过红蓝攻防检验参演单位安全威胁应对能力,攻击事件检测发现能力。事件分析研判能
C# WPF 为何能成为工控上位机开发的首选
zls365365
c# wpf 开发语言
C#WPF(WindowsPresentationFoundation)因其强大的功能和灵活性,成为了工控上位机开发的首选技术之一。WPF提供了丰富的控件、图形和动画效果,以及与硬件设备的交互能力,非常适合用来构建复杂的工业自动化和监控系统。以下是一些关键因素,解释了为什么WPF能在工控上位机开发中占据重要地位,并提供了一些实例代码来展示其应用。1.强大的数据绑定和MVVM支持WPF支持MVVM(
Manus要邀请码?来试试 OpenManus:纯开源AI Agent 神器+简单三步上手实战指南
大F的智能小课
DeepSeek技术解析和实战 大模型理论和实战 人工智能 深度学习 机器学习
大家好,我是大F,深耕AI算法十余年,互联网大厂技术岗。分享AI算法干货、技术心得。更多文章可关注《大模型理论和实战》、《DeepSeek技术解析和实战》,一起探索技术的无限可能!一、Manus介绍Manus(拉丁语"手脑并用")作为全球首款通用型AIAgent,其核心突破在于实现了从"被动响应"到"主动执行"的跨越。与传统AI助手不同,它通过多智能体架构在云端虚拟机中运行,能自主调用浏览器、代码
在 CentOS 上解压 JAR 包的完整指南
码农阿豪@新空间
面试 centos jar linux
个人名片作者简介:java领域优质创作者个人主页:码农阿豪工作室:新空间代码工作室(提供各种软件服务)个人邮箱:[2435024119@qq.com]个人微信:15279484656个人导航网站:www.forff.top座右铭:总有人要赢。为什么不能是我呢?专栏导航:码农阿豪系列专栏导航面试专栏:收集了java相关高频面试题,面试实战总结️Spring5系列专栏:整理了Spring5重要知识点与
零基础小白也能轻松上手!C# WinForm、上位机与 WPF 教程大起底
七七知享
上位机 c# wpf 开发语言 Winform 上位机 教程 零基础
你是否曾望着复杂的编程世界,满心憧憬却又因零基础而望而却步?今天,咱们就专为编程小白打造,深入剖析C#WinForm、上位机与WPF的神秘面纱,开启一段轻松愉悦的编程学习之旅!一、C#基础——编程世界的敲门砖C#作为一门功能强大且应用广泛的编程语言,是踏入编程领域的绝佳起点。对于零基础的朋友,先得了解它的基本语法,像变量、数据类型、控制语句这些基础概念,就如同搭建房子的砖块,看似简单,却是构建复杂
【C#】详解C#中的内存管理机制
JosieBook
# C#语言 c# 开发语言 内存管理
文章目录前言一、C#内存管理的基本机制(1)托管堆(ManagedHeap)(2)垃圾回收(GarbageCollection)(3)栈内存二、开发者需要主动管理的场景(1)非托管资源释放(2)大对象和内存优化(3)循环引用与内存泄漏三、手动干预GC的罕见场景(1)强制触发GC(2)弱引用(WeakReference)四、与非托管代码交互五、总结前言在C#中,内存管理主要通过垃圾回收(Garbag
WebRTC简介及实战应用 — 从0到1实现实时音视频聊天等功能
不怕麻烦的鹿丸
HTML5 JavaScript WebRTC webrtc 实时音视频 前端 音视频 javascript html5 html
一、WebRTC简介WebRTC是由一家名为GobalIPSolutions,简称GIPS的瑞典公司开发的。Google在2011年收购了GIPS,并将其源代码开源。然后又与IETF和W3C的相关标准机构合作,以确保行业达成共识。其中:WebReal-TimeCommunications(WEBRTC)W3C组织:定义浏览器API。Real-TimeCommunicationinWeb-brows
Go实战全家桶之五十二:go函数式编程
leijmdas
go实战全家桶 go golang
github.com/samber/lo是一个非常流行的Go语言库,提供了丰富的函数式编程工具,类似于JavaScript中的Lodash。它通过泛型支持,为Go开发者提供了许多便捷的集合操作函数(如Map、Filter、Reduce、Uniq等)。然而,是否认为它是“最好的”函数式编程库,取决于具体的需求和使用场景。以下是对lo库的详细分析,帮助你判断它是否适合你的项目:1.lo库的优点1.1丰
解释 HTTP 中的内容协商,如何根据客户端偏好返回合适的内容?
程序员黄同学
前端开发 JavaScript node.js http 网络协议 网络
一、内容协商的本质与价值内容协商(ContentNegotiation)是HTTP协议中客户端与服务器就资源表现形式达成一致的协商机制。其核心价值在于:用同一URI提供资源的不同表现形式,同时保证客户端获得最适合自身环境的内容版本。典型应用场景:多语言站点自动适配浏览器语言根据设备类型返回移动版/桌面版页面API接口支持JSON/XML等多种数据格式图片资源按客户端支持格式自动转换二、核心协商机制
鸿蒙HarmonyOS NEXT开发:ArkUI高性能开发-(组件复用最佳优化实践)
小叮当QAQ
HarmonyOS NEXT开发 ArkUI-性能优化 harmonyos 华为 android 嵌入式硬件 驱动开发
往期鸿蒙全套实战精彩文章必看内容:鸿蒙开发核心知识点,看这篇文章就够了最新版!鸿蒙HarmonyOSNext应用开发实战学习路线鸿蒙HarmonyOSNEXT开发技术最全学习路线指南鸿蒙应用开发实战项目,看这一篇文章就够了(部分项目附源码)概述若开发者的应用中存在以下场景,并成为UI线程的帧率瓶颈,应该考虑使用组件复用机制提升应用性能:列表滚动(本例中的场景):当应用需要展示大量数据的列表,并且用
《C# using关键字全面解析:资源管理 × 命名空间 × 避坑指南》
Ro小陌
C# 数据库 开发语言 c# 数据库 开发语言
在C#中,using是一个多功能的关键字,主要用于资源管理和命名空间引用。以下是它的两种核心用法和扩展特性:一、using指令(命名空间引用)作用:简化代码中对其他命名空间下类型的访问,避免写冗长的完全限定名。1.基本用法csharpusingSystem;//引入System命名空间usingSystem.IO;//引入文件操作相关类classProgram{staticvoidMain(){C
HarmonyOS实战开发-高性能ArkUI组件复用实践案例
「已注销」
前端 华为 鸿蒙 harmonyos 华为 鸿蒙 安卓 前端
概述若开发者的应用中存在以下场景,并成为UI线程的帧率瓶颈,应该考虑使用组件复用机制提升应用性能:●列表滚动(本例中的场景):当应用需要展示大量数据的列表,并且用户进行滚动操作时,频繁创建和销毁列表项的视图可能导致卡顿和性能问题。在这种情况下,使用列表组件的组件复用机制可以重用已经创建的列表项视图,提高滚动的流畅度。●动态布局更新:如果应用中的界面需要频繁地进行布局更新,例如根据用户的操作或数据变
Could not initialize Logback Nacos logging from classpath:nacos-logback.xml
顽皮小书生
java 开发语言
搭建网关服务,使用Nacos作为注册中心,服务启动时警告:WARNcom.alibaba.nacos.client.logging.NacosLogging-LoadLogbackConfigurationofNacosfail,message:CouldnotinitializeLogbackNacosloggingfromclasspath:nacos-logback.xml服务的pom.xm
Spring4.1新特性——Spring MVC增强
jinnianshilongnian
spring 4.1
目录
Spring4.1新特性——综述
Spring4.1新特性——Spring核心部分及其他
Spring4.1新特性——Spring缓存框架增强
Spring4.1新特性——异步调用和事件机制的异常处理
Spring4.1新特性——数据库集成测试脚本初始化
Spring4.1新特性——Spring MVC增强
Spring4.1新特性——页面自动化测试框架Spring MVC T
mysql 性能查询优化
annan211
java sql 优化 mysql 应用服务器
1 时间到底花在哪了?
mysql在执行查询的时候需要执行一系列的子任务,这些子任务包含了整个查询周期最重要的阶段,这其中包含了大量为了
检索数据列到存储引擎的调用以及调用后的数据处理,包括排序、分组等。在完成这些任务的时候,查询需要在不同的地方
花费时间,包括网络、cpu计算、生成统计信息和执行计划、锁等待等。尤其是向底层存储引擎检索数据的调用操作。这些调用需要在内存操
windows系统配置
cherishLC
windows
删除Hiberfil.sys :使用命令powercfg -h off 关闭休眠功能即可:
http://jingyan.baidu.com/article/f3ad7d0fc0992e09c2345b51.html
类似的还有pagefile.sys
msconfig 配置启动项
shutdown 定时关机
ipconfig 查看网络配置
ipconfig /flushdns
人体的排毒时间
Array_06
工作
========================
|| 人体的排毒时间是什么时候?||
========================
转载于:
http://zhidao.baidu.com/link?url=ibaGlicVslAQhVdWWVevU4TMjhiKaNBWCpZ1NS6igCQ78EkNJZFsEjCjl3T5EdXU9SaPg04bh8MbY1bR
ZooKeeper
cugfy
zookeeper
Zookeeper是一个高性能,分布式的,开源分布式应用协调服务。它提供了简单原始的功能,分布式应用可以基于它实现更高级的服务,比如同步, 配置管理,集群管理,名空间。它被设计为易于编程,使用文件系统目录树作为数据模型。服务端跑在java上,提供java和C的客户端API。 Zookeeper是Google的Chubby一个开源的实现,是高有效和可靠的协同工作系统,Zookeeper能够用来lea
网络爬虫的乱码处理
随意而生
爬虫 网络
下边简单总结下关于网络爬虫的乱码处理。注意,这里不仅是中文乱码,还包括一些如日文、韩文 、俄文、藏文之类的乱码处理,因为他们的解决方式 是一致的,故在此统一说明。 网络爬虫,有两种选择,一是选择nutch、hetriex,二是自写爬虫,两者在处理乱码时,原理是一致的,但前者处理乱码时,要看懂源码后进行修改才可以,所以要废劲一些;而后者更自由方便,可以在编码处理
Xcode常用快捷键
张亚雄
xcode
一、总结的常用命令:
隐藏xcode command+h
退出xcode command+q
关闭窗口 command+w
关闭所有窗口 command+option+w
关闭当前
mongoDB索引操作
adminjun
mongodb 索引
一、索引基础: MongoDB的索引几乎与传统的关系型数据库一模一样,这其中也包括一些基本的优化技巧。下面是创建索引的命令: > db.test.ensureIndex({"username":1}) 可以通过下面的名称查看索引是否已经成功建立: &nbs
成都软件园实习那些话
aijuans
成都 软件园 实习
无聊之中,翻了一下日志,发现上一篇经历是很久以前的事了,悔过~~
断断续续离开了学校快一年了,习惯了那里一天天的幼稚、成长的环境,到这里有点与世隔绝的感觉。不过还好,那是刚到这里时的想法,现在感觉在这挺好,不管怎么样,最要感谢的还是老师能给这么好的一次催化成长的机会,在这里确实看到了好多好多能想到或想不到的东西。
都说在外面和学校相比最明显的差距就是与人相处比较困难,因为在外面每个人都
Linux下FTP服务器安装及配置
ayaoxinchao
linux FTP服务器 vsftp
检测是否安装了FTP
[root@localhost ~]# rpm -q vsftpd
如果未安装:package vsftpd is not installed 安装了则显示:vsftpd-2.0.5-28.el5累死的版本信息
安装FTP
运行yum install vsftpd命令,如[root@localhost ~]# yum install vsf
使用mongo-java-driver获取文档id和查找文档
BigBird2012
driver
注:本文所有代码都使用的mongo-java-driver实现。
在MongoDB中,一个集合(collection)在概念上就类似我们SQL数据库中的表(Table),这个集合包含了一系列文档(document)。一个DBObject对象表示我们想添加到集合(collection)中的一个文档(document),MongoDB会自动为我们创建的每个文档添加一个id,这个id在
JSONObject以及json串
bijian1013
json JSONObject
一.JAR包简介
要使程序可以运行必须引入JSON-lib包,JSON-lib包同时依赖于以下的JAR包:
1.commons-lang-2.0.jar
2.commons-beanutils-1.7.0.jar
3.commons-collections-3.1.jar
&n
[Zookeeper学习笔记之三]Zookeeper实例创建和会话建立的异步特性
bit1129
zookeeper
为了说明问题,看个简单的代码,
import org.apache.zookeeper.*;
import java.io.IOException;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.ThreadLocal
【Scala十二】Scala核心六:Trait
bit1129
scala
Traits are a fundamental unit of code reuse in Scala. A trait encapsulates method and field definitions, which can then be reused by mixing them into classes. Unlike class inheritance, in which each c
weblogic version 10.3破解
ronin47
weblogic
版本:WebLogic Server 10.3
说明:%DOMAIN_HOME%:指WebLogic Server 域(Domain)目录
例如我的做测试的域的根目录 DOMAIN_HOME=D:/Weblogic/Middleware/user_projects/domains/base_domain
1.为了保证操作安全,备份%DOMAIN_HOME%/security/Defa
求第n个斐波那契数
BrokenDreams
今天看到群友发的一个问题:写一个小程序打印第n个斐波那契数。
自己试了下,搞了好久。。。基础要加强了。
&nbs
读《研磨设计模式》-代码笔记-访问者模式-Visitor
bylijinnan
java 设计模式
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/
import java.util.ArrayList;
import java.util.List;
interface IVisitor {
//第二次分派,Visitor调用Element
void visitConcret
MatConvNet的excise 3改为网络配置文件形式
cherishLC
matlab
MatConvNet为vlFeat作者写的matlab下的卷积神经网络工具包,可以使用GPU。
主页:
http://www.vlfeat.org/matconvnet/
教程:
http://www.robots.ox.ac.uk/~vgg/practicals/cnn/index.html
注意:需要下载新版的MatConvNet替换掉教程中工具包中的matconvnet:
http
ZK Timeout再讨论
chenchao051
zookeeper timeout hbase
http://crazyjvm.iteye.com/blog/1693757 文中提到相关超时问题,但是又出现了一个问题,我把min和max都设置成了180000,但是仍然出现了以下的异常信息:
Client session timed out, have not heard from server in 154339ms for sessionid 0x13a3f7732340003
CASE WHEN 用法介绍
daizj
sql group by case when
CASE WHEN 用法介绍
1. CASE WHEN 表达式有两种形式
--简单Case函数
CASE sex
WHEN '1' THEN '男'
WHEN '2' THEN '女'
ELSE '其他' END
--Case搜索函数
CASE
WHEN sex = '1' THEN
PHP技巧汇总:提高PHP性能的53个技巧
dcj3sjt126com
PHP
PHP技巧汇总:提高PHP性能的53个技巧 用单引号代替双引号来包含字符串,这样做会更快一些。因为PHP会在双引号包围的字符串中搜寻变量, 单引号则不会,注意:只有echo能这么做,它是一种可以把多个字符串当作参数的函数译注: PHP手册中说echo是语言结构,不是真正的函数,故把函数加上了双引号)。 1、如果能将类的方法定义成static,就尽量定义成static,它的速度会提升将近4倍
Yii框架中CGridView的使用方法以及详细示例
dcj3sjt126com
yii
CGridView显示一个数据项的列表中的一个表。
表中的每一行代表一个数据项的数据,和一个列通常代表一个属性的物品(一些列可能对应于复杂的表达式的属性或静态文本)。 CGridView既支持排序和分页的数据项。排序和分页可以在AJAX模式或正常的页面请求。使用CGridView的一个好处是,当用户浏览器禁用JavaScript,排序和分页自动退化普通页面请求和仍然正常运行。
实例代码如下:
Maven项目打包成可执行Jar文件
dyy_gusi
assembly
Maven项目打包成可执行Jar文件
在使用Maven完成项目以后,如果是需要打包成可执行的Jar文件,我们通过eclipse的导出很麻烦,还得指定入口文件的位置,还得说明依赖的jar包,既然都使用Maven了,很重要的一个目的就是让这些繁琐的操作简单。我们可以通过插件完成这项工作,使用assembly插件。具体使用方式如下:
1、在项目中加入插件的依赖:
<plugin>
php常见错误
geeksun
PHP
1. kevent() reported that connect() failed (61: Connection refused) while connecting to upstream, client: 127.0.0.1, server: localhost, request: "GET / HTTP/1.1", upstream: "fastc
修改linux的用户名
hongtoushizi
linux change password
Change Linux Username
更改Linux用户名,需要修改4个系统的文件:
/etc/passwd
/etc/shadow
/etc/group
/etc/gshadow
古老/传统的方法是使用vi去直接修改,但是这有安全隐患(具体可自己搜一下),所以后来改成使用这些命令去代替:
vipw
vipw -s
vigr
vigr -s
具体的操作顺
第五章 常用Lua开发库1-redis、mysql、http客户端
jinnianshilongnian
nginx lua
对于开发来说需要有好的生态开发库来辅助我们快速开发,而Lua中也有大多数我们需要的第三方开发库如Redis、Memcached、Mysql、Http客户端、JSON、模板引擎等。
一些常见的Lua库可以在github上搜索,https://github.com/search?utf8=%E2%9C%93&q=lua+resty。
Redis客户端
lua-resty-r
zkClient 监控机制实现
liyonghui160com
zkClient 监控机制实现
直接使用zk的api实现业务功能比较繁琐。因为要处理session loss,session expire等异常,在发生这些异常后进行重连。又因为ZK的watcher是一次性的,如果要基于wather实现发布/订阅模式,还要自己包装一下,将一次性订阅包装成持久订阅。另外如果要使用抽象级别更高的功能,比如分布式锁,leader选举
在Mysql 众多表中查找一个表名或者字段名的 SQL 语句
pda158
mysql
在Mysql 众多表中查找一个表名或者字段名的 SQL 语句:
方法一:SELECT table_name, column_name from information_schema.columns WHERE column_name LIKE 'Name';
方法二:SELECT column_name from information_schema.colum
程序员对英语的依赖
Smile.zeng
英语 程序猿
1、程序员最基本的技能,至少要能写得出代码,当我们还在为建立类的时候思考用什么单词发牢骚的时候,英语与别人的差距就直接表现出来咯。
2、程序员最起码能认识开发工具里的英语单词,不然怎么知道使用这些开发工具。
3、进阶一点,就是能读懂别人的代码,有利于我们学习人家的思路和技术。
4、写的程序至少能有一定的可读性,至少要人别人能懂吧...
以上一些问题,充分说明了英语对程序猿的重要性。骚年
Oracle学习笔记(8) 使用PLSQL编写触发器
vipbooks
oracle sql 编程 活动 Access
时间过得真快啊,转眼就到了Oracle学习笔记的最后个章节了,通过前面七章的学习大家应该对Oracle编程有了一定了了解了吧,这东东如果一段时间不用很快就会忘记了,所以我会把自己学习过的东西做好详细的笔记,用到的时候可以随时查找,马上上手!希望这些笔记能对大家有些帮助!
这是第八章的学习笔记,学习完第七章的子程序和包之后