C# XML文件基础

文章目录

  • 一、XML介绍
    • 1.1 概念
    • 1.2 例子
    • 1.3创建一个xml文件
  • 二、读取XML文件
    • 2.1加载XML文件
    • 2.2 获取根节点、读取信息、对象映射、填充结构,绑定用户界面
    • 2.3 遍历节点、
    • 2.4例子源代码

一、XML介绍

1.1 概念

在C#中,XML文件是一种用来存储和传输数据的标记语言文档。XML代表可扩展标记语言(eXtensible Markup Language)。它设计用来传输和存储数据,具有自我描述性,并且对人和机器都是可读的。

XML文件的作用包括:

  1. 数据存储: XML是一种流行的方式,用于存储应用程序设置、配置信息或其他数据。例如,微软的.NET框架中的配置文件(如 app.configweb.config)就是XML格式的。

  2. 数据交换: 由于其文本本质和广泛的可读性,XML是一个常用的数据交换格式,可以在不同的系统和程序间传递信息,尤其是在Web服务和SOA(面向服务的架构)中。

  3. 数据结构描述: XML可以描述数据的结构,通过元素和属性来表示数据的层次和语义。这对于确保数据的一致性和完整性很有帮助。

  4. 平台无关性: 作为一个文本格式,XML文件可以在不同的操作系统和环境间轻松地移植和使用。

  5. 可扩展性: 如其名称所示,XML是可扩展的,这意味着你可以设计自己的标记元素和文档结构,以满足特定的需要,而不必依赖于标准的数据格式。

  6. 支持国际化: XML支持Unicode,使得它可以表示几乎所有人类语言中的文本,这对于国际化的应用程序来说非常重要。

  7. 验证: 使用XML Schema定义语言(XSD),可以定义XML文档的结构和数据类型,并对XML文档进行验证,确保数据的正确性。

  8. 转换和呈现: 使用XSLT(Extensible Stylesheet Language Transformations),可以把XML文档转换为其他格式的文档,例如HTML,用于在浏览器中显示。

在C#中操作XML文件,你可以使用System.Xml命名空间中的类,如XmlDocument, XmlReader, XmlWriter, XmlSerializer等,来读取、修改、创建和序列化XML文档。

1.2 例子

在C#或其他编程语言中,有专门的库和工具可以帮助开发者生成或解析XML格式的数据,而不需要手动编写或解析XML的标签和结构。这些工具通常为数据提供了一个高层抽象,允许开发者用编程语言中的数据结构来操作数据,然后这些工具负责将这些数据结构转换成合适的XML格式,或者将XML数据解析成可在程序中使用的数据结构。所以不用去细致了解它的语法;

以下是一个简单的XML文件内容的例子,它描述了一个图书馆中书籍的集合:


<library>
  <book id="1">
    <title>The Great Gatsbytitle>
    <author>F. Scott Fitzgeraldauthor>
    <year>1925year>
    <genre>Fictiongenre>
  book>
  <book id="2">
    <title>Nineteen Eighty-Fourtitle>
    <author>George Orwellauthor>
    <year>1949year>
    <genre>Dystopiangenre>
  book>
  <book id="3">
    <title>To Kill a Mockingbirdtitle>
    <author>Harper Leeauthor>
    <year>1960year>
    <genre>Fictiongenre>
  book>
library>

这个XML文档遵循以下结构和特点:

  • XML声明: 是XML声明,它定义了这个文档的XML版本和字符编码。

  • 根元素: 标签是文档的根元素,所有其他元素都包含在其中。

  • 元素(或标签):</code>、<code><author></code>、<code><year></code> 和 <code><genre></code>。每个 <code><book></code> 元素表示图书馆中的一本书。</p> </li> <li> <p><strong>属性:</strong> <code><book></code> 元素中的 <code>id</code> 是一个属性,它为每本书提供了一个唯一的标识符。</p> </li> <li> <p><strong>文本内容:</strong> 标签如 <code><title></code> 和 <code><author></code> 的文本内容存储了书的标题和作者。</p> </li> </ul> <p>XML文件可以被各种程序和服务用来读取、显示和处理图书馆集合中书籍的信息。因为XML是可扩展的,所以如果需要,我们可以很容易地添加更多的数据字段,比如出版社、ISBN号,或者其他元数据。</p> <h3>1.3创建一个xml文件</h3> <p>假设我们有一个C#对象,并希望将其转换为XML,我们可以使用 XmlSerializer 来序列化这个对象:</p> <pre><code>using System; using System.IO; using System.Xml.Serialization; // 假设有一个Book类 public class Book { public string Title { get; set; } public string Author { get; set; } public int Year { get; set; } public string Genre { get; set; } } class Program { static void Main() { // 创建一个Book实例 Book myBook = new Book { Title = "The Great Gatsby", Author = "F. Scott Fitzgerald", Year = 1925, Genre = "Fiction" }; // 创建一个XmlSerializer对象来进行序列化 XmlSerializer serializer = new XmlSerializer(typeof(Book)); // 使用StreamWriter写入文件 using (StreamWriter writer = new StreamWriter("D:\\IDE\\book.xml")) { serializer.Serialize(writer, myBook); } Console.WriteLine("XML文件已生成。"); } } </code></pre> <p><a href="http://img.e-com-net.com/image/info8/a9e4c2724b82421f9bce08651e9e88a1.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/a9e4c2724b82421f9bce08651e9e88a1.jpg" alt="C# XML文件基础_第1张图片" width="650" height="165" style="border:1px solid black;"></a></p> <p>于是在我们的目标地址生成了这样的一个文件,而且无法被打开。需要注意的是:在上面的例子,.NET中对XML的处理主要是对象到XML的转换,所以使用XmlSerializer更合适。<br> 如果涉及到需要读取或修改XML文档,或者创建新的XML文档结构,那么XmlDocument可能更适合。此外,XmlDocument在.NET Core中被一个更快和更现代的XDocument类(位于System.Xml.Linq命名空间下)所替代,它提供了LINQ集成和更简洁的API。</p> <h2>二、读取XML文件</h2> <p>假如我们得到了一个这样的XML文件,我们需要使用C#文件读取,文件是这样,里面记载了几个班级学生的信息(姓名 年龄 行别 班级):</p> <pre><code><?xml version="1.0" encoding="utf-8" ?> <Students> <Student> <StuName>王五</StuName> <StuAge>19</StuAge> <Gender>男</Gender> <ClassName>机械1班</ClassName> </Student> <Student> <StuName>王六</StuName> <StuAge>22</StuAge> <Gender>男</Gender> <ClassName>机械2班</ClassName> </Student> <Student> <StuName>刘九</StuName> <StuAge>21</StuAge> <Gender>男</Gender> <ClassName>机械3班</ClassName> </Student> <Student> <StuName>阿红</StuName> <StuAge>23</StuAge> <Gender>女</Gender> <ClassName>机械4班</ClassName> </Student> <Student> <StuName>阿七</StuName> <StuAge>20</StuAge> <Gender>女</Gender> <ClassName>机械5班</ClassName> </Student> <DataInfo> <Version vNo="1.2" pTime="2012-12-12">数据版本信息</Version> </DataInfo> </Students> </code></pre> <p>我们希望可以这样显示出来:<br> <a href="http://img.e-com-net.com/image/info8/a5f3814f017943b6ad64999f954a8c28.png" target="_blank"><img src="http://img.e-com-net.com/image/info8/a5f3814f017943b6ad64999f954a8c28.png" alt="C# XML文件基础_第2张图片" width="377" height="223" style="border:1px solid black;"></a><br> 应该怎么办呢,我们可以按照这样的步骤来进行:</p> <ol> <li> <p><strong>加载XML文件:</strong></p> <ul> <li>使用<code>XmlDocument</code>类或者<code>XDocument</code>类(如果是使用LINQ to XML)来加载XML文件。这通常通过调用这些类的<code>Load</code>方法来实现,传入文件的路径或者一个<code>Stream</code>对象。</li> </ul> </li> <li> <p><strong>获取根节点:</strong></p> <ul> <li>通过<code>DocumentElement</code>属性(对于<code>XmlDocument</code>)或者<code>Root</code>属性(对于<code>XDocument</code>)来获取XML文档的根节点。</li> </ul> </li> <li> <p><strong>遍历节点:</strong></p> <ul> <li>使用循环结构遍历根节点的子节点。如果XML结构更为复杂,可能需要嵌套循环或递归方法来遍历子节点的子节点等。</li> </ul> </li> <li> <p><strong>读取节点信息:</strong></p> <ul> <li>根据节点的类型或名称获取所需的信息。这可能包括节点的文本内容(通常是<code>InnerText</code>或<code>Value</code>属性)以及节点的属性(可以通过<code>Attributes</code>集合或直接访问特定属性)。</li> </ul> </li> <li> <p><strong>对象映射:</strong></p> <ul> <li>将读取的XML数据映射到对象属性。创建对象实例,根据XML节点的内容来设置对象的属性。这个步骤通常需要你有一个与XML数据结构相对应的对象模型。</li> </ul> </li> <li> <p><strong>填充数据结构:</strong></p> <ul> <li>如果要处理多个相似的节点(例如,在XML中表示多个学生的多个<code>Student</code>节点),则可以创建对象的集合,如<code>List<T></code>。读取每个节点的信息,创建并填充对象实例,然后将对象添加到集合中。</li> </ul> </li> <li> <p><strong>绑定到用户界面(可选):</strong></p> <ul> <li>将对象集合绑定到用户界面控件,如在Windows窗体中的<code>DataGridView</code>。这允许自动地将集合中的数据显示在用户界面上。</li> </ul> </li> <li> <p><strong>异常处理(建议):</strong></p> <ul> <li>添加异常处理逻辑来捕获并处理可能发生的任何错误,例如文件找不到、文件损坏或XML结构不匹配等异常情况。</li> </ul> </li> </ol> <p>接下来我们就按照这个步骤完后读取xml文件的任务。</p> <h3>2.1加载XML文件</h3> <pre><code>XmlDocument xml_Doc = new XmlDocument(); //【1】创建XML文档操作对象 xml_Doc.Load("StuScore.xml"); //【2】加载XML文件到文档对象中(路径) </code></pre> <p>我们先实例化一个XmlDocument对象,名为xml_Doc。XmlDocument是.NET框架中的一个类,它提供了一个表示XML文档的对象模型。这个类可以用来加载、编辑和保存XML文档。此时,xml_Doc是一个空的XML文档对象,还没有加载任何数据。</p> <p>接下来我们使用了xml_Doc对象(其实还是XmlDocument的方法)的Load方法,以加载一个名为"StuText.xml"的XML文件。这里的字符串"StuText.xml"指定了XML文件的名称和路径。如果没有指定路径,程序将在应用程序的当前工作目录中查找该文件。(这里就是文件在程序目录中,所以没有具体路径)。<br> 当调用Load方法时,会有下面几种情况:</p> <p>XmlDocument对象xml_Doc会尝试找到并打开指定的XML文件。<br> 如果成功找到并能够访问该文件,XmlDocument将读取文件的内容,并基于这些内容构建内部的DOM(文档对象模型)树。这个DOM树是一个节点的层次结构,它表示XML文档的结构,可以通过程序进行查询和修改。<br> 如果在加载过程中发现任何语法错误(比如不匹配的标签、不正确的属性格式等),将抛出一个XmlException异常,所以需要在调用Load方法的代码周围添加相应的异常处理逻辑(try-catch块)来捕获并处理这些异常。<br> 加载完毕后,可以通过xml_Doc对象访问和操作XML文档的内容。例如,可以读取特定的节点、属性或进行其他的查询和修改操作。这些操作可以用来提取数据,或者在内存中对XML文档进行更改,并最终将更改写回到文件或其他输出流中。</p> <h3>2.2 获取根节点、读取信息、对象映射、填充结构,绑定用户界面</h3> <pre><code> XmlNode rootNode = xml_Doc.DocumentElement; //【3】获取XML文档根目录 </code></pre> <p>这行代码是在加载XML文档后,从<code>XmlDocument</code>对象中获取文档的根元素(root element)。根元素是XML文档结构的最顶层元素,也就是所有其他元素的父元素。</p> <p>在这里:</p> <ul> <li><code>xml_Doc</code>是前面代码中创建并加载了XML文件内容的<code>XmlDocument</code>对象。</li> <li><code>DocumentElement</code>是<code>XmlDocument</code>类的一个属性,它返回一个<code>XmlElement</code>对象,该对象代表文档的根元素。<br> 因为xml其实是一个树结构<br> <a href="http://img.e-com-net.com/image/info8/9cfd8cb285ad417b98b0e0cf59da4801.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/9cfd8cb285ad417b98b0e0cf59da4801.jpg" alt="C# XML文件基础_第3张图片" width="650" height="315" style="border:1px solid black;"></a></li> </ul> <p><code>rootNode</code>变量现在包含了对XML文档根元素的引用。持有这个引用之后,就可以遍历整个XML文档的元素,因为所有的节点都是从这个根元素开始嵌套的。我们可以使用这个引用来访问、修改或查询XML文档的各个部分。例如,我们可以访问根节点的子节点、属性等等。</p> <h3>2.3 遍历节点、</h3> <pre><code> List<Student> list = new List<Student>();//创建对象集合 foreach (XmlNode stuNode in rootNode.ChildNodes) //【4】遍历根节点(根节点包含所有节点) { if (stuNode.Name == "Student") { Student xml_Stu = new Student(); foreach (XmlNode subNode in stuNode) //【5】遍历子节点 { switch (subNode.Name)//根据子节点的名称封装到对象的属性 { case "StuName": xml_Stu.StuName = subNode.InnerText;//获取《节点名称》对应的《节点值》 break; case "StuAge": xml_Stu.StuAge = Convert.ToInt16(subNode.InnerText); break; case "Gender": xml_Stu.Gender = subNode.InnerText; break; case "ClassName": xml_Stu.ClassName = subNode.InnerText; break; } } list.Add(xml_Stu); } } this.dgvStuList.DataSource = list; </code></pre> <p>这段代码是在C#中使用的,它展示了如何从XML文档中读取数据并将这些数据封装到一个对象列表中。接着,将这个列表设置为数据网格视图控件(也就是我们的显示窗口)的数据源,以便在用户界面上展示数据。<br> 首先我们创建了一个名为list的新列表,这个列表用来存储Student类型的对象。Student是我们自定义的类,它有StuName(姓名)、StuAge(年龄)、Gender(性别)和ClassName(班级)等属性。<br> foreach (XmlNode stuNode in rootNode.ChildNodes)<br> 该循环遍历前面提到的根节点的直接子节点。这里,stuNode代表当前遍历到的子节点。循环的每次迭代都会处理一个子节点。<br> //<br> //<br> 这里插播一条直接子节点:<br> "直接子节点"是一个术语,用来描述在一个文档对象模型(DOM)树中,某个节点下一级的节点。在XML或HTML文档中,一个节点(例如一个元素)可以有子节点,这些子节点可以是元素节点、文本节点、注释节点等等。</p> <p>以XML为例,考虑以下简单的结构:</p> <pre><code class="prism language-xml"><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>Parent</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>Child</span><span class="token punctuation">></span></span>First child<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>Child</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>Child</span><span class="token punctuation">></span></span>Second child<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>Child</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>Parent</span><span class="token punctuation">></span></span> </code></pre> <p>在这个例子中,<code><Parent></code>元素有两个直接子节点,都是<code><Child></code>元素。这些<code><Child></code>元素是<code><Parent></code>元素的直接子节点,因为它们是<code><Parent></code>下第一层的节点。如果这些<code><Child></code>元素内部还有其他元素,则这些内部元素将被视为<code><Child></code>元素的直接子节点,而不是<code><Parent></code>的直接子节点。</p> <p>在处理DOM时,能够区分"直接子节点"(也就是某个特定节点的第一级子节点)与所有后代节点(即所有层级的子节点)是很重要的,因为它们之间的关系会影响你如何设计代码来遍历和操作DOM。<br> ///<br> ///</p> <pre><code>if (stuNode.Name == "Student") </code></pre> <p>在遍历子节点时,代码检查节点的名称是否为"Student"。如果是,这意味着这个节点包含了一个学生对象的数据。</p> <pre><code>Student xml_Stu = new Student(); </code></pre> <p>一旦找到一个名为"Student"的节点,代码就会创建一个新的Student对象实例,名为xml_Stu。</p> <pre><code>foreach (XmlNode subNode in stuNode) //【5】遍历Student节点的子节点 </code></pre> <p>接着,代码遍历"Student"节点的所有子节点,这些子节点包含了关于学生的具体信息,如姓名、年龄等。</p> <pre><code>switch (subNode.Name) { // ... } </code></pre> <p>在此switch语句中,代码根据子节点的名称来判断应该将节点内的文本(InnerText)赋值给xml_Stu对象的哪个属性。例如,如果子节点的名称是"StuName",则将它的文本内容赋值给xml_Stu对象的StuName属性。</p> <pre><code>list.Add(xml_Stu); </code></pre> <p>一旦填充完xml_Stu对象的所有属性,这个对象就会被添加到list列表中。</p> <pre><code>this.dgvStuList.DataSource = list; </code></pre> <p>最后,list列表被设置为名为dgvStuList的数据网格视图控件的数据源。dgvStuList是一个Windows窗体应用程序中的控件,用于显示数据。这样设置后,dgvStuList将显示list列表中的所有学生信息。</p> <p>总之呢,这段代码的作用是将XML文档中特定结构的数据(在这个例子中是学生信息)读取出来,创建对应的C#对象列表,并将这些数据展示在用户界面上。</p> <h3>2.4例子源代码</h3> <p>链接:https://pan.baidu.com/s/1fSmI2USsrVWHxh5zXtQWYg?pwd=1234<br> 提取码:1234</p> </div> </div> </div> </div> </div> <!--PC和WAP自适应版--> <div id="SOHUCS" sid="1747410044451831808"></div> <script type="text/javascript" src="/views/front/js/chanyan.js"></script> <!-- 文章页-底部 动态广告位 --> <div class="youdao-fixed-ad" id="detail_ad_bottom"></div> </div> <div class="col-md-3"> <div class="row" id="ad"> <!-- 文章页-右侧1 动态广告位 --> <div id="right-1" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_1"> </div> </div> <!-- 文章页-右侧2 动态广告位 --> <div id="right-2" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_2"></div> </div> <!-- 文章页-右侧3 动态广告位 --> <div id="right-3" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_3"></div> </div> </div> </div> </div> </div> </div> <div class="container"> <h4 class="pt20 mb15 mt0 border-top">你可能感兴趣的:(c#,xml)</h4> <div id="paradigm-article-related"> <div class="recommend-post mb30"> <ul class="widget-links"> <li><a href="/article/1835508131489214464.htm" title="高级编程--XML+socket练习题" target="_blank">高级编程--XML+socket练习题</a> <span class="text-muted">masa010</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>1.北京华北2114.8万人上海华东2,500万人广州华南1292.68万人成都华西1417万人(1)使用dom4j将信息存入xml中(2)读取信息,并打印控制台(3)添加一个city节点与子节点(4)使用socketTCP协议编写服务端与客户端,客户端输入城市ID,服务器响应相应城市信息(5)使用socketTCP协议编写服务端与客户端,客户端要求用户输入city对象,服务端接收并使用dom4j</div> </li> <li><a href="/article/1835506236842405888.htm" title="C#中使用split分割字符串" target="_blank">C#中使用split分割字符串</a> <span class="text-muted">互联网打工人no1</span> <a class="tag" taget="_blank" href="/search/c%23/1.htm">c#</a> <div>1、用字符串分隔:usingSystem.Text.RegularExpressions;stringstr="aaajsbbbjsccc";string[]sArray=Regex.Split(str,"js",RegexOptions.IgnoreCase);foreach(stringiinsArray)Response.Write(i.ToString()+"");输出结果:aaabbbc</div> </li> <li><a href="/article/1835504217729626112.htm" title="Python教程:一文了解使用Python处理XPath" target="_blank">Python教程:一文了解使用Python处理XPath</a> <span class="text-muted">旦莫</span> <a class="tag" taget="_blank" href="/search/Python%E8%BF%9B%E9%98%B6/1.htm">Python进阶</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>目录1.环境准备1.1安装lxml1.2验证安装2.XPath基础2.1什么是XPath?2.2XPath语法2.3示例XML文档3.使用lxml解析XML3.1解析XML文档3.2查看解析结果4.XPath查询4.1基本路径查询4.2使用属性查询4.3查询多个节点5.XPath的高级用法5.1使用逻辑运算符5.2使用函数6.实战案例6.1从网页抓取数据6.1.1安装Requests库6.1.2代</div> </li> <li><a href="/article/1835494762388484096.htm" title="【目标检测数据集】卡车数据集1073张VOC+YOLO格式" target="_blank">【目标检测数据集】卡车数据集1073张VOC+YOLO格式</a> <span class="text-muted">熬夜写代码的平头哥∰</span> <a class="tag" taget="_blank" href="/search/%E7%9B%AE%E6%A0%87%E6%A3%80%E6%B5%8B/1.htm">目标检测</a><a class="tag" taget="_blank" href="/search/YOLO/1.htm">YOLO</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a> <div>数据集格式:PascalVOC格式+YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件)图片数量(jpg文件个数):1073标注数量(xml文件个数):1073标注数量(txt文件个数):1073标注类别数:1标注类别名称:["truck"]每个类别标注的框数:truck框数=1120总框数:1120使用标注工具:labelImg标注</div> </li> <li><a href="/article/1835492742713667584.htm" title="钢筋长度超限检测检数据集VOC+YOLO格式215张1类别" target="_blank">钢筋长度超限检测检数据集VOC+YOLO格式215张1类别</a> <span class="text-muted">futureflsl</span> <a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E9%9B%86/1.htm">数据集</a><a class="tag" taget="_blank" href="/search/YOLO/1.htm">YOLO</a><a class="tag" taget="_blank" href="/search/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/1.htm">深度学习</a><a class="tag" taget="_blank" href="/search/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/1.htm">机器学习</a> <div>数据集格式:PascalVOC格式+YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件)图片数量(jpg文件个数):215标注数量(xml文件个数):215标注数量(txt文件个数):215标注类别数:1标注类别名称:["iron"]每个类别标注的框数:iron框数=215总框数:215使用标注工具:labelImg标注规则:对类别进</div> </li> <li><a href="/article/1835479758033481728.htm" title="SpringBlade dict-biz/list 接口 SQL 注入漏洞" target="_blank">SpringBlade dict-biz/list 接口 SQL 注入漏洞</a> <span class="text-muted">文章永久免费只为良心</span> <a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a> <div>SpringBladedict-biz/list接口SQL注入漏洞POC:构造请求包查看返回包你的网址/api/blade-system/dict-biz/list?updatexml(1,concat(0x7e,md5(1),0x7e),1)=1漏洞概述在SpringBlade框架中,如果dict-biz/list接口的后台处理逻辑没有正确地对用户输入进行过滤或参数化查询(PreparedSta</div> </li> <li><a href="/article/1835471059135066112.htm" title="你可能遗漏的一些C#/.NET/.NET Core知识点" target="_blank">你可能遗漏的一些C#/.NET/.NET Core知识点</a> <span class="text-muted">追逐时光者</span> <a class="tag" taget="_blank" href="/search/C%23/1.htm">C#</a><a class="tag" taget="_blank" href="/search/.NET/1.htm">.NET</a><a class="tag" taget="_blank" href="/search/DotNetGuide%E7%BC%96%E7%A8%8B%E6%8C%87%E5%8D%97/1.htm">DotNetGuide编程指南</a><a class="tag" taget="_blank" href="/search/c%23/1.htm">c#</a><a class="tag" taget="_blank" href="/search/.net/1.htm">.net</a><a class="tag" taget="_blank" href="/search/.netcore/1.htm">.netcore</a><a class="tag" taget="_blank" href="/search/microsoft/1.htm">microsoft</a> <div>前言在这个快速发展的技术世界中,时常会有一些重要的知识点、信息或细节被忽略或遗漏。《C#/.NET/.NETCore拾遗补漏》专栏我们将探讨一些可能被忽略或遗漏的重要知识点、信息或细节,以帮助大家更全面地了解这些技术栈的特性和发展方向。拾遗补漏GitHub开源地址https://github.com/YSGStudyHards/DotNetGuide/blob/main/docs/DotNet/D</div> </li> <li><a href="/article/1835458199755517952.htm" title="spring如何整合druid连接池?" target="_blank">spring如何整合druid连接池?</a> <span class="text-muted">惜.己</span> <a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/junit/1.htm">junit</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/idea/1.htm">idea</a><a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a><a class="tag" taget="_blank" href="/search/xml/1.htm">xml</a> <div>目录spring整合druid连接池1.新建maven项目2.新建mavenModule3.导入相关依赖4.配置log4j2.xml5.配置druid.xml1)xml中如何引入properties2)下面是配置文件6.准备jdbc.propertiesJDBC配置项解释7.配置druid8.测试spring整合druid连接池1.新建maven项目打开IDE(比如IntelliJIDEA,Ecl</div> </li> <li><a href="/article/1835443822654484480.htm" title="遥感影像的切片处理" target="_blank">遥感影像的切片处理</a> <span class="text-muted">sand&wich</span> <a class="tag" taget="_blank" href="/search/%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%A7%86%E8%A7%89/1.htm">计算机视觉</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%9B%BE%E5%83%8F%E5%A4%84%E7%90%86/1.htm">图像处理</a> <div>在遥感影像分析中,经常需要将大尺寸的影像切分成小片段,以便于进行详细的分析和处理。这种方法特别适用于机器学习和图像处理任务,如对象检测、图像分类等。以下是如何使用Python和OpenCV库来实现这一过程,同时确保每个影像片段保留正确的地理信息。准备环境首先,确保安装了必要的Python库,包括numpy、opencv-python和xml.etree.ElementTree。这些库将用于图像处理</div> </li> <li><a href="/article/1835420248896008192.htm" title="使用由 Python 编写的 lxml 实现高性能 XML 解析" target="_blank">使用由 Python 编写的 lxml 实现高性能 XML 解析</a> <span class="text-muted">hunyxv</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/xml/1.htm">xml</a> <div>转载自:文章lxml简介Python从来不出现XML库短缺的情况。从2.0版本开始,它就附带了xml.dom.minidom和相关的pulldom以及SimpleAPIforXML(SAX)模块。从2.4开始,它附带了流行的ElementTreeAPI。此外,很多第三方库可以提供更高级别的或更具有python风格的接口。尽管任何XML库都足够处理简单的DocumentObjectModel(DOM</div> </li> <li><a href="/article/1835381300014444544.htm" title="[数据集][目标检测]汽车头部尾部检测数据集VOC+YOLO格式5319张3类别" target="_blank">[数据集][目标检测]汽车头部尾部检测数据集VOC+YOLO格式5319张3类别</a> <span class="text-muted">FL1623863129</span> <a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E9%9B%86/1.htm">数据集</a><a class="tag" taget="_blank" href="/search/%E7%9B%AE%E6%A0%87%E6%A3%80%E6%B5%8B/1.htm">目标检测</a><a class="tag" taget="_blank" href="/search/%E6%B1%BD%E8%BD%A6/1.htm">汽车</a><a class="tag" taget="_blank" href="/search/YOLO/1.htm">YOLO</a> <div>数据集制作单位:未来自主研究中心(FIRC)版权单位:未来自主研究中心(FIRC)版权声明:数据集仅仅供个人使用,不得在未授权情况下挂淘宝、咸鱼等交易网站公开售卖,由此引发的法律责任需自行承担数据集格式:PascalVOC格式+YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件)图片数量(jpg文件个数):5319标注数量(xml文件</div> </li> <li><a href="/article/1835375905128673280.htm" title="idea使用自定义checkstyle.xml配置文件" target="_blank">idea使用自定义checkstyle.xml配置文件</a> <span class="text-muted">Gemkey</span> <div>1.下载插件image.png2.插件安装完后,找到设置中的checkstyle,点击"+",新增自定义规则image.png3.输入描述信息,点击Browse找到对应的文件image.pngimage.png4.可以把active勾上,则使用默认校验规则,点击OK,则可以开始使用自定义规则检测单个文件了image.png</div> </li> <li><a href="/article/1835352556197474304.htm" title="C#动态加载DLL程序集及使用反射创建实例-简记" target="_blank">C#动态加载DLL程序集及使用反射创建实例-简记</a> <span class="text-muted">不全</span> <a class="tag" taget="_blank" href="/search/C%23%E7%9B%B8%E5%85%B3/1.htm">C#相关</a><a class="tag" taget="_blank" href="/search/Asp.net/1.htm">Asp.net</a><a class="tag" taget="_blank" href="/search/WebForm/1.htm">WebForm</a><a class="tag" taget="_blank" href="/search/Asp.net/1.htm">Asp.net</a><a class="tag" taget="_blank" href="/search/MVC/1.htm">MVC</a><a class="tag" taget="_blank" href="/search/c%23/1.htm">c#</a><a class="tag" taget="_blank" href="/search/Assembly/1.htm">Assembly</a><a class="tag" taget="_blank" href="/search/%E5%8F%8D%E5%B0%84/1.htm">反射</a><a class="tag" taget="_blank" href="/search/%E7%A8%8B%E5%BA%8F%E9%9B%86/1.htm">程序集</a> <div>Assembly动态加载程序集:分两种情况:1、需要加载的程序集已经在程序中被引用了,则直接从当前程序域中查找即可:Assemblyassembly=AppDomain.CurrentDomain.GetAssemblies().FirstOrDefault(x=>x.GetName().Name.Contains("theAssemblyName"));2、需要加载的程序集未被加载,则使用程序集</div> </li> <li><a href="/article/1835349150519095296.htm" title="开发游戏的学习规划" target="_blank">开发游戏的学习规划</a> <span class="text-muted">杰克逊的日记</span> <a class="tag" taget="_blank" href="/search/%E6%B8%B8%E6%88%8F/1.htm">游戏</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a> <div>第一阶段:●C#语言快速系统地学习一遍(基础的语法、面向对象、基础的数据结构、基础的设计模式)●Unity的2D和3D部分及UI、动画、物理系统●阶段性测验:需要去用前面所学的这些基础知识来完成一个简单的2d或者3d的案例,将通过一个自制的《Flappybird》游戏案例讲解游戏开发的思想及方法,并将《Flappybird》这个游戏进一步改造成一个横版射击类游戏《Crazybird》以巩固并且升华</div> </li> <li><a href="/article/1835347637017079808.htm" title="python可以制作大型游戏_python能做游戏吗-python能开发游戏吗" target="_blank">python可以制作大型游戏_python能做游戏吗-python能开发游戏吗</a> <span class="text-muted">靖dede</span> <a class="tag" taget="_blank" href="/search/python%E5%8F%AF%E4%BB%A5%E5%88%B6%E4%BD%9C%E5%A4%A7%E5%9E%8B%E6%B8%B8%E6%88%8F/1.htm">python可以制作大型游戏</a> <div>python可以写游戏,但不适合。下面我们来分析一下具体原因。用锤子能造汽车吗?谁也没法说不能吧?历史上也确实曾经有些汽车,是用锤子造出来的。但一般来说,还是用工业机器人更合适对吗?比较大型的,使用Python的游戏有两个,一个是《EVE》,还有一个是《文明》。但这仅仅是个例,没有广泛意义。一般来说,用来做游戏的语言,有两种。一是C++。。一是C#。。Python理论上,不仅不适合做游戏,而是只要</div> </li> <li><a href="/article/1835342718067372032.htm" title="Python精选200Tips:121-125" target="_blank">Python精选200Tips:121-125</a> <span class="text-muted">AnFany</span> <a class="tag" taget="_blank" href="/search/Python200%2BTips/1.htm">Python200+Tips</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>Spendyourtimeonself-improvement121Requests-简化的HTTP请求处理发送GET请求发送POST请求发送PUT请求发送DELETE请求会话管理处理超时文件上传122BeautifulSoup-网页解析和抓取解析HTML和XML文档查找单个标签查找多个标签使用CSS选择器查找标签提取文本修改文档内容删除标签处理XML文档123Scrapy-强大的网络爬虫框架示例</div> </li> <li><a href="/article/1835333491814920192.htm" title="maven-assembly-plugin 打包实例" target="_blank">maven-assembly-plugin 打包实例</a> <span class="text-muted">带着二娃去遛弯</span> <div>1.先在pom.xml文件中添加assembly打包插件org.apache.maven.pluginsmaven-assembly-plugin2.6assembly/assembly.xmlmake-assemblypackagesingle说明:1.需要修改的可能就是descriptors标签下面的打包配置文件目录,指定assembly.xml的路径.2.可以添加多个打包配置文件,进行多种形</div> </li> <li><a href="/article/1835305216686256128.htm" title="【C#生态园】深度剖析:C#嵌入式开发工具大揭秘" target="_blank">【C#生态园】深度剖析:C#嵌入式开发工具大揭秘</a> <span class="text-muted">friklogff</span> <a class="tag" taget="_blank" href="/search/C%23%E7%94%9F%E6%80%81%E5%9B%AD/1.htm">C#生态园</a><a class="tag" taget="_blank" href="/search/c%23/1.htm">c#</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>C#嵌入式开发:全面了解六大框架与库前言随着物联网和嵌入式系统的快速发展,越来越多的开发者开始关注使用C#语言进行嵌入式开发。本文将介绍几种用于C#的嵌入式开发框架和相关库,以及它们的核心功能、安装配置方法和API概览,帮助读者了解并选择适合自己项目的工具和资源。欢迎订阅专栏:C#生态园文章目录C#嵌入式开发:全面了解六大框架与库前言1.nanoFramework:一个用于C#的嵌入式开发框架1.</div> </li> <li><a href="/article/1835303453203722240.htm" title="Lua 与 C#交互" target="_blank">Lua 与 C#交互</a> <span class="text-muted">z2014z</span> <a class="tag" taget="_blank" href="/search/lua/1.htm">lua</a><a class="tag" taget="_blank" href="/search/c%23/1.htm">c#</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>Lua与C#交互前提Lua是一种嵌入式脚本语言,Lua的解释器是用C编写的,因此可以方便的与C/C++进行相互调用。轻量级Lua语言的官方版本只包括一个精简的核心和最基本的库,这使得Lua体积小、启动速度快,也适合嵌入在别的程序里。交互过程C#调用Lua:由C#文件调用Lua解析器底层dll库(由C语言编写),再由dll文件执行相应的Lua文件。Lua调用C#:1、Wrap方式:首先生成C#源文件</div> </li> <li><a href="/article/1835301010743062528.htm" title="小程序通过js控制页面字体颜色属性" target="_blank">小程序通过js控制页面字体颜色属性</a> <span class="text-muted">祈澈菇凉</span> <div>需求:当电量少于百分之20的时候,显示电量的字体显示为红色。1:在wxml里面设置属性batStyle:style="{{item.batStyle}}"电量:{{item.battery}}%2:当复合逻辑条件的时候,在js里面carList[i].batStyle="color:red";success:function(res){constcarList=res.data.list;for(</div> </li> <li><a href="/article/1835295766747377664.htm" title="C# 开发教程-入门基础" target="_blank">C# 开发教程-入门基础</a> <span class="text-muted">天马3798</span> <a class="tag" taget="_blank" href="/search/%E6%95%99%E7%A8%8B%E7%B3%BB%E5%88%97%E6%95%B4%E7%90%86/1.htm">教程系列整理</a><a class="tag" taget="_blank" href="/search/c%23/1.htm">c#</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>1.C#简介、环境,程序结构2.C#基本语法,变量,控制局域,数据类型,类型转换3.C#数组、循环,Linq4.C#类,封装,方法5.C#枚举、字符串6.C#面相对象,继承,封装,多态7.C#特性、属性、反射、索引器8.C#委托,事件,集合,泛型9.C#匿名方法10.C#多线程更多:JQuery开发教程入门基础Vue开发基础入门教程Vue开发高级学习教程</div> </li> <li><a href="/article/1835288207923703808.htm" title="C# 禁止程序重复启动" target="_blank">C# 禁止程序重复启动</a> <span class="text-muted">wiseyao1219</span> <a class="tag" taget="_blank" href="/search/c%23/1.htm">c#</a> <div>修改:Program.cs[STAThread]staticvoidMain(){Mutexmutex=newMutex(true,"NewGuid123456",outboolisCreatedNew);if(!isCreatedNew){MessageBox.Show(Application.ProductName+"isrunning...");return;}Application.Ena</div> </li> <li><a href="/article/1835282965358276608.htm" title="ajax的同源策略" target="_blank">ajax的同源策略</a> <span class="text-muted">Spring_Bear</span> <div>问题之前帮忙做的广告机器人数据提交的部分,利用ajax的XMLHTTPRequest提交到服务器的时候总是报错,错误类型是不同源。想到浏览器中的同源策略,明白了问题的原因。同源策略简单的说,就是浏览器不允许两个不同源的域名之间交换信息,那么这里就有两个问题。一是,什么信息不允许交换;二是,怎样算不同源。阮一峰的这篇博客浏览器同源政策及其规避方法其实已经介绍得比较清楚。引用一下,第一个问题:目前,如</div> </li> <li><a href="/article/1835275356035182592.htm" title="C#中判断socket是否已断开的方法" target="_blank">C#中判断socket是否已断开的方法</a> <span class="text-muted">wiseyao1219</span> <a class="tag" taget="_blank" href="/search/c%23/1.htm">c#</a> <div>代码如下:Sockets=newSocket(..);if(s.Poll(-1,SelectMode.SelectRead)){intnRead=s.Receive();if(nRead==0){//socket连接已断开}}参考:C#中判断socket是否已断开的方法</div> </li> <li><a href="/article/1835268549149552640.htm" title="java的四个层级结构" target="_blank">java的四个层级结构</a> <span class="text-muted">活跃家族</span> <a class="tag" taget="_blank" href="/search/JAVA/1.htm">JAVA</a> <div>java的四个层级结构首先,最底层的就是dto层,dto层就是所谓的model,dto中定义的是实体类,也就是.class文件,该文件中包含实体类的属性和对应属性的get、set方法;其次,是dao层(dao层的文件习惯以*Mapper命名),dao层会调用dto层,dao层中会定义实际使用到的方法,比如增删改查。一般在dao层下还会有个叫做sqlmap的包,该包下有xml文件,文件内容正是根据之</div> </li> <li><a href="/article/1835257575277424640.htm" title="【Python爬虫】百度百科词条内容" target="_blank">【Python爬虫】百度百科词条内容</a> <span class="text-muted">PokiFighting</span> <a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%A4%84%E7%90%86/1.htm">数据处理</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E7%88%AC%E8%99%AB/1.htm">爬虫</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>词条内容我这里随便选取了一个链接,用的是FBI的词条importurllib.requestimporturllib.parsefromlxmlimportetreedefquery(url):headers={'user-agent':'Mozilla/5.0(WindowsNT6.1;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/80.</div> </li> <li><a href="/article/1835231486190645248.htm" title="C#文件被占用的解决方案" target="_blank">C#文件被占用的解决方案</a> <span class="text-muted">花北城</span> <a class="tag" taget="_blank" href="/search/C%23%E9%A1%B9%E7%9B%AE/1.htm">C#项目</a><a class="tag" taget="_blank" href="/search/%E6%96%87%E4%BB%B6%E5%8D%A0%E7%94%A8/1.htm">文件占用</a> <div>问题打更新包时,提示文件被占用。System.IO.IOException:文件“D:\RS\RS_CCVI20111210.exe”正由另一进程使用,因此该进程无法访问该文件。在System.IO.__Error.WinIOError(Int32errorCode,StringmaybeFullPath)在System.IO.FileStream.Init(Stringpath,FileMode</div> </li> <li><a href="/article/1835210183991717888.htm" title="C#实现软件自动升级" target="_blank">C#实现软件自动升级</a> <span class="text-muted">BruceEditCode</span> <div>winform程序相对web程序而言,功能更强大,编程更方便,但软件更新却相当麻烦,要到客户端一台一台地升级,本文结合实际情况,通过软件实现自动升级,弥补了这一缺陷,有较好的参考价值。由于程序在运行时不能用新的版本覆盖自己,因此,我们将登录窗口单独做成一个可执行文件,用户登录时,从网上检测是否有新的主程序,如果有,则从后台下载并覆盖老的版本,用户输入正确的用户名和密码后,通过参数将必要的信息(如用</div> </li> <li><a href="/article/1835209301472407552.htm" title="C# 自动化" target="_blank">C# 自动化</a> <span class="text-muted">TineAine</span> <a class="tag" taget="_blank" href="/search/C%23/1.htm">C#</a><a class="tag" taget="_blank" href="/search/%E4%BB%A3%E7%A0%81%E7%89%87%E6%AE%B5/1.htm">代码片段</a><a class="tag" taget="_blank" href="/search/%E8%87%AA%E5%8A%A8%E5%8C%96/1.htm">自动化</a><a class="tag" taget="_blank" href="/search/c%23/1.htm">c#</a><a class="tag" taget="_blank" href="/search/%E8%87%AA%E5%8A%A8%E5%8C%96/1.htm">自动化</a><a class="tag" taget="_blank" href="/search/%E6%A8%A1%E6%8B%9F%E6%93%8D%E4%BD%9C/1.htm">模拟操作</a> <div>实现的方法可能很笨,但是确实很好用usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Runtime.InteropServices;usingSystem.Text;usingSystem.Threading;usingSystem.Threading.Tasks;/******************</div> </li> <li><a href="/article/1835195686212169728.htm" title="5-【JavaWeb】JUnit 单元测试及JUL 日志系统" target="_blank">5-【JavaWeb】JUnit 单元测试及JUL 日志系统</a> <span class="text-muted">weixin_44329069</span> <a class="tag" taget="_blank" href="/search/JavaWeb/1.htm">JavaWeb</a><a class="tag" taget="_blank" href="/search/junit/1.htm">junit</a><a class="tag" taget="_blank" href="/search/%E5%8D%95%E5%85%83%E6%B5%8B%E8%AF%95/1.htm">单元测试</a> <div>1.使用JUnit进行单元测试JUnit是Java中非常流行的单元测试框架,MyBatis与JUnit可以很好地结合,来测试持久层代码的正确性。1.1添加JUnit依赖在使用JUnit之前,需要在pom.xml中引入JUnit依赖。junitjunit4.13.2test1.2单元测试基本结构假设我们要测试UserMapper中的getUserById方法,测试代码如下:importorg.apa</div> </li> <li><a href="/article/28.htm" title="如何用ruby来写hadoop的mapreduce并生成jar包" target="_blank">如何用ruby来写hadoop的mapreduce并生成jar包</a> <span class="text-muted">wudixiaotie</span> <a class="tag" taget="_blank" href="/search/mapreduce/1.htm">mapreduce</a> <div>ruby来写hadoop的mapreduce,我用的方法是rubydoop。怎么配置环境呢: 1.安装rvm:     不说了 网上有 2.安装ruby:     由于我以前是做ruby的,所以习惯性的先安装了ruby,起码调试起来比jruby快多了。 3.安装jruby:     rvm install jruby然后等待安</div> </li> <li><a href="/article/155.htm" title="java编程思想 -- 访问控制权限" target="_blank">java编程思想 -- 访问控制权限</a> <span class="text-muted">百合不是茶</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E8%AE%BF%E9%97%AE%E6%8E%A7%E5%88%B6%E6%9D%83%E9%99%90/1.htm">访问控制权限</a><a class="tag" taget="_blank" href="/search/%E5%8D%95%E4%BE%8B%E6%A8%A1%E5%BC%8F/1.htm">单例模式</a> <div>访问权限是java中一个比较中要的知识点,它规定者什么方法可以访问,什么不可以访问   一:包访问权限;   自定义包: package com.wj.control; //包 public class Demo { //定义一个无参的方法 public void DemoPackage(){ System.out.println("调用</div> </li> <li><a href="/article/282.htm" title="[生物与医学]请审慎食用小龙虾" target="_blank">[生物与医学]请审慎食用小龙虾</a> <span class="text-muted">comsci</span> <a class="tag" taget="_blank" href="/search/%E7%94%9F%E7%89%A9/1.htm">生物</a> <div>      现在的餐馆里面出售的小龙虾,有一些是在野外捕捉的,这些小龙虾身体里面可能带有某些病毒和细菌,人食用以后可能会导致一些疾病,严重的甚至会死亡.....      所以,参加聚餐的时候,最好不要点小龙虾...就吃养殖的猪肉,牛肉,羊肉和鱼,等动物蛋白质     </div> </li> <li><a href="/article/409.htm" title="org.apache.jasper.JasperException: Unable to compile class for JSP:" target="_blank">org.apache.jasper.JasperException: Unable to compile class for JSP:</a> <span class="text-muted">商人shang</span> <a class="tag" taget="_blank" href="/search/maven/1.htm">maven</a><a class="tag" taget="_blank" href="/search/2.2/1.htm">2.2</a><a class="tag" taget="_blank" href="/search/jdk1.8/1.htm">jdk1.8</a> <div>环境: jdk1.8    maven  tomcat7-maven-plugin  2.0 原因: tomcat7-maven-plugin  2.0 不知吃 jdk 1.8,换成 tomcat7-maven-plugin  2.2就行,即     <plugin> </div> </li> <li><a href="/article/536.htm" title="你的垃圾你处理掉了吗?GC" target="_blank">你的垃圾你处理掉了吗?GC</a> <span class="text-muted">oloz</span> <a class="tag" taget="_blank" href="/search/GC/1.htm">GC</a> <div>前序:本人菜鸟,此文研究学习来自网络,各位牛牛多指教  1.垃圾收集算法的核心思想   Java语言建立了垃圾收集机制,用以跟踪正在使用的对象和发现并回收不再使用(引用)的对象。该机制可以有效防范动态内存分配中可能发生的两个危险:因内存垃圾过多而引发的内存耗尽,以及不恰当的内存释放所造成的内存非法引用。   垃圾收集算法的核心思想是:对虚拟机可用内存空间,即堆空间中的对象进行识别</div> </li> <li><a href="/article/663.htm" title="shiro 和 SESSSION" target="_blank">shiro 和 SESSSION</a> <span class="text-muted">杨白白</span> <a class="tag" taget="_blank" href="/search/shiro/1.htm">shiro</a> <div>shiro 在web项目里默认使用的是web容器提供的session,也就是说shiro使用的session是web容器产生的,并不是自己产生的,在用于非web环境时可用其他来源代替。在web工程启动的时候它就和容器绑定在了一起,这是通过web.xml里面的shiroFilter实现的。通过session.getSession()方法会在浏览器cokkice产生JESSIONID,当关闭浏览器,此</div> </li> <li><a href="/article/790.htm" title="移动互联网终端 淘宝客如何实现盈利" target="_blank">移动互联网终端 淘宝客如何实现盈利</a> <span class="text-muted">小桔子</span> <a class="tag" taget="_blank" href="/search/%E7%A7%BB%E5%8B%95%E5%AE%A2%E6%88%B6%E7%AB%AF/1.htm">移動客戶端</a><a class="tag" taget="_blank" href="/search/%E6%B7%98%E5%AE%A2/1.htm">淘客</a><a class="tag" taget="_blank" href="/search/%E6%B7%98%E5%AF%B6App/1.htm">淘寶App</a> <div>       2012年淘宝联盟平台为站长和淘宝客带来的分成收入突破30亿元,同比增长100%。而来自移动端的分成达1亿元,其中美丽说、蘑菇街、果库、口袋购物等App运营商分成近5000万元。 可以看出,虽然目前阶段PC端对于淘客而言仍旧是盈利的大头,但移动端已经呈现出爆发之势。而且这个势头将随着智能终端(手机,平板)的加速普及而更加迅猛</div> </li> <li><a href="/article/917.htm" title="wordpress小工具制作" target="_blank">wordpress小工具制作</a> <span class="text-muted">aichenglong</span> <a class="tag" taget="_blank" href="/search/wordpress/1.htm">wordpress</a><a class="tag" taget="_blank" href="/search/%E5%B0%8F%E5%B7%A5%E5%85%B7/1.htm">小工具</a> <div>wordpress 使用侧边栏的小工具,很方便调整页面结构 小工具的制作过程 1 在自己的主题文件中新建一个文件夹(如widget),在文件夹中创建一个php(AWP_posts-category.php) 小工具是一个类,想侧边栏一样,还得使用代码注册,他才可以再后台使用,基本的代码一层不变 <?php class AWP_Post_Category extends WP_Wi</div> </li> <li><a href="/article/1044.htm" title="JS微信分享" target="_blank">JS微信分享</a> <span class="text-muted">AILIKES</span> <a class="tag" taget="_blank" href="/search/js/1.htm">js</a> <div>// 所有功能必须包含在 WeixinApi.ready 中进行    WeixinApi.ready(function(Api) {        // 微信分享的数据            var wxData = {       &nb</div> </li> <li><a href="/article/1171.htm" title="封装探讨" target="_blank">封装探讨</a> <span class="text-muted">百合不是茶</span> <a class="tag" taget="_blank" href="/search/JAVA%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1+%E5%B0%81%E8%A3%85/1.htm">JAVA面向对象 封装</a> <div>//封装   属性 方法 将某些东西包装在一起,通过创建对象或使用静态的方法来调用,称为封装;封装其实就是有选择性地公开或隐藏某些信息,它解决了数据的安全性问题,增加代码的可读性和可维护性   在 Aname类中申明三个属性,将其封装在一个类中:通过对象来调用   例如   1: //属性 将其设为私有 姓名 name 可以公开 </div> </li> <li><a href="/article/1298.htm" title="jquery radio/checkbox change事件不能触发的问题" target="_blank">jquery radio/checkbox change事件不能触发的问题</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/jquery/1.htm">jquery</a> <div>我想让radio来控制当前我选择的是机动车还是特种车,如下所示:  <html> <head> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"><</div> </li> <li><a href="/article/1425.htm" title="AngularJS中安全性措施" target="_blank">AngularJS中安全性措施</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/AngularJS/1.htm">AngularJS</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8%E6%80%A7/1.htm">安全性</a><a class="tag" taget="_blank" href="/search/XSRF/1.htm">XSRF</a><a class="tag" taget="_blank" href="/search/JSON%E6%BC%8F%E6%B4%9E/1.htm">JSON漏洞</a> <div>        在使用web应用中,安全性是应该首要考虑的一个问题。AngularJS提供了一些辅助机制,用来防护来自两个常见攻击方向的网络攻击。 一.JSON漏洞         当使用一个GET请求获取JSON数组信息的时候(尤其是当这一信息非常敏感,</div> </li> <li><a href="/article/1552.htm" title="[Maven学习笔记九]Maven发布web项目" target="_blank">[Maven学习笔记九]Maven发布web项目</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/maven/1.htm">maven</a> <div>基于Maven的web项目的标准项目结构 user-project     user-core     user-service     user-web        src      </div> </li> <li><a href="/article/1679.htm" title="【Hive七】Hive用户自定义聚合函数(UDAF)" target="_blank">【Hive七】Hive用户自定义聚合函数(UDAF)</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/hive/1.htm">hive</a> <div>用户自定义聚合函数,用户提供的多个入参通过聚合计算(求和、求最大值、求最小值)得到一个聚合计算结果的函数。 问题:UDF也可以提供输入多个参数然后输出一个结果的运算,比如加法运算add(3,5),add这个UDF需要实现UDF的evaluate方法,那么UDF和UDAF的实质分别究竟是什么?   Double evaluate(Double a, Double b)  </div> </li> <li><a href="/article/1806.htm" title="通过 nginx-lua 给 Nginx 增加 OAuth 支持" target="_blank">通过 nginx-lua 给 Nginx 增加 OAuth 支持</a> <span class="text-muted">ronin47</span> <div>前言:我们使用Nginx的Lua中间件建立了OAuth2认证和授权层。如果你也有此打算,阅读下面的文档,实现自动化并获得收益。SeatGeek 在过去几年中取得了发展,我们已经积累了不少针对各种任务的不同管理接口。我们通常为新的展示需求创建新模块,比如我们自己的博客、图表等。我们还定期开发内部工具来处理诸如部署、可视化操作及事件处理等事务。在处理这些事务中,我们使用了几个不同的接口来认证: &n</div> </li> <li><a href="/article/1933.htm" title="利用tomcat-redis-session-manager做session同步时自定义类对象属性保存不上的解决方法" target="_blank">利用tomcat-redis-session-manager做session同步时自定义类对象属性保存不上的解决方法</a> <span class="text-muted">bsr1983</span> <a class="tag" taget="_blank" href="/search/session/1.htm">session</a> <div>在利用tomcat-redis-session-manager做session同步时,遇到了在session保存一个自定义对象时,修改该对象中的某个属性,session未进行序列化,属性没有被存储到redis中。 在 tomcat-redis-session-manager的github上有如下说明: Session Change Tracking As noted in the &qu</div> </li> <li><a href="/article/2060.htm" title="《代码大全》表驱动法-Table Driven Approach-1" target="_blank">《代码大全》表驱动法-Table Driven Approach-1</a> <span class="text-muted">bylijinnan</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a> <div>关于Table Driven Approach的一篇非常好的文章: http://www.codeproject.com/Articles/42732/Table-driven-Approach package com.ljn.base; import java.util.Random; public class TableDriven { public </div> </li> <li><a href="/article/2187.htm" title="Sybase封锁原理" target="_blank">Sybase封锁原理</a> <span class="text-muted">chicony</span> <a class="tag" taget="_blank" href="/search/Sybase/1.htm">Sybase</a> <div>       昨天在操作Sybase IQ12.7时意外操作造成了数据库表锁定,不能删除被锁定表数据也不能往其中写入数据。由于着急往该表抽入数据,因此立马着手解决该表的解锁问题。     无奈此前没有接触过Sybase IQ12.7这套数据库产品,加之当时已属于下班时间无法求助于支持人员支持,因此只有借助搜索引擎强大的</div> </li> <li><a href="/article/2314.htm" title="java异常处理机制" target="_blank">java异常处理机制</a> <span class="text-muted">CrazyMizzz</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>java异常关键字有以下几个,分别为 try catch final throw throws 他们的定义分别为 try:    Opening exception-handling statement. catch:  Captures the exception. finally: Runs its code before terminating</div> </li> <li><a href="/article/2441.htm" title="hive 数据插入DML语法汇总" target="_blank">hive 数据插入DML语法汇总</a> <span class="text-muted">daizj</span> <a class="tag" taget="_blank" href="/search/hive/1.htm">hive</a><a class="tag" taget="_blank" href="/search/DML/1.htm">DML</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E6%8F%92%E5%85%A5/1.htm">数据插入</a> <div>Hive的数据插入DML语法汇总1、Loading files into tables语法:1) LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename [PARTITION (partcol1=val1, partcol2=val2 ...)]解释:1)、上面命令执行环境为hive客户端环境下: hive>l</div> </li> <li><a href="/article/2568.htm" title="工厂设计模式" target="_blank">工厂设计模式</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/1.htm">设计模式</a> <div>  使用设计模式是促进最佳实践和良好设计的好办法。设计模式可以提供针对常见的编程问题的灵活的解决方案。 工厂模式 工厂模式(Factory)允许你在代码执行时实例化对象。它之所以被称为工厂模式是因为它负责“生产”对象。工厂方法的参数是你要生成的对象对应的类名称。 Example #1 调用工厂方法(带参数) <?phpclass Example{ </div> </li> <li><a href="/article/2695.htm" title="mysql字符串查找函数" target="_blank">mysql字符串查找函数</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a> <div>  FIND_IN_SET(str,strlist) 假如字符串str 在由N 子链组成的字符串列表strlist 中,则返回值的范围在1到 N 之间。一个字符串列表就是一个由一些被‘,’符号分开的自链组成的字符串。如果第一个参数是一个常数字符串,而第二个是type SET列,则   FIND_IN_SET() 函数被优化,使用比特计算。如果str不在strlist 或st</div> </li> <li><a href="/article/2822.htm" title="jvm内存管理" target="_blank">jvm内存管理</a> <span class="text-muted">easterfly</span> <a class="tag" taget="_blank" href="/search/jvm/1.htm">jvm</a> <div>一、JVM堆内存的划分 分为年轻代和年老代。年轻代又分为三部分:一个eden,两个survivor。 工作过程是这样的:e区空间满了后,执行minor gc,存活下来的对象放入s0, 对s0仍会进行minor gc,存活下来的的对象放入s1中,对s1同样执行minor gc,依旧存活的对象就放入年老代中; 年老代满了之后会执行major gc,这个是stop the word模式,执行</div> </li> <li><a href="/article/2949.htm" title="CentOS-6.3安装配置JDK-8" target="_blank">CentOS-6.3安装配置JDK-8</a> <span class="text-muted">gengzg</span> <a class="tag" taget="_blank" href="/search/centos/1.htm">centos</a> <div>JAVA_HOME=/usr/java/jdk1.8.0_45 JRE_HOME=/usr/java/jdk1.8.0_45/jre PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib export JAVA_HOME</div> </li> <li><a href="/article/3076.htm" title="【转】关于web路径的获取方法" target="_blank">【转】关于web路径的获取方法</a> <span class="text-muted">huangyc1210</span> <a class="tag" taget="_blank" href="/search/Web/1.htm">Web</a><a class="tag" taget="_blank" href="/search/%E8%B7%AF%E5%BE%84/1.htm">路径</a> <div>假定你的web application 名称为news,你在浏览器中输入请求路径:  http://localhost:8080/news/main/list.jsp  则执行下面向行代码后打印出如下结果:  1、 System.out.println(request.getContextPath()); //可返回站点的根路径。也就是项</div> </li> <li><a href="/article/3203.htm" title="php里获取第一个中文首字母并排序" target="_blank">php里获取第一个中文首字母并排序</a> <span class="text-muted">远去的渡口</span> <a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/1.htm">数据结构</a><a class="tag" taget="_blank" href="/search/PHP/1.htm">PHP</a> <div>很久没来更新博客了,还是觉得工作需要多总结的好。今天来更新一个自己认为比较有成就的问题吧。 最近在做储值结算,需求里结算首页需要按门店的首字母A-Z排序。我的数据结构原本是这样的: Array ( [0] => Array ( [sid] => 2885842 [recetcstoredpay] =&g</div> </li> <li><a href="/article/3330.htm" title="java内部类" target="_blank">java内部类</a> <span class="text-muted">hm4123660</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%86%85%E9%83%A8%E7%B1%BB/1.htm">内部类</a><a class="tag" taget="_blank" href="/search/%E5%8C%BF%E5%90%8D%E5%86%85%E9%83%A8%E7%B1%BB/1.htm">匿名内部类</a><a class="tag" taget="_blank" href="/search/%E6%88%90%E5%91%98%E5%86%85%E9%83%A8%E7%B1%BB/1.htm">成员内部类</a><a class="tag" taget="_blank" href="/search/%E6%96%B9%E6%B3%95%E5%86%85%E9%83%A8%E7%B1%BB/1.htm">方法内部类</a> <div>      在Java中,可以将一个类定义在另一个类里面或者一个方法里面,这样的类称为内部类。内部类仍然是一个独立的类,在编译之后内部类会被编译成独立的.class文件,但是前面冠以外部类的类名和$符号。内部类可以间接解决多继承问题,可以使用内部类继承一个类,外部类继承一个类,实现多继承。      &nb</div> </li> <li><a href="/article/3457.htm" title="Caused by: java.lang.IncompatibleClassChangeError: class org.hibernate.cfg.Exten" target="_blank">Caused by: java.lang.IncompatibleClassChangeError: class org.hibernate.cfg.Exten</a> <span class="text-muted">zhb8015</span> <div>maven pom.xml关于hibernate的配置和异常信息如下,查了好多资料,问题还是没有解决。只知道是包冲突,就是不知道是哪个包....遇到这个问题的分享下是怎么解决的。。   maven pom:   <dependency> <groupId>org.hibernate</groupId> <ar</div> </li> <li><a href="/article/3584.htm" title="Spark 性能相关参数配置详解-任务调度篇" target="_blank">Spark 性能相关参数配置详解-任务调度篇</a> <span class="text-muted">Stark_Summer</span> <a class="tag" taget="_blank" href="/search/spark/1.htm">spark</a><a class="tag" taget="_blank" href="/search/cache/1.htm">cache</a><a class="tag" taget="_blank" href="/search/cpu/1.htm">cpu</a><a class="tag" taget="_blank" href="/search/%E4%BB%BB%E5%8A%A1%E8%B0%83%E5%BA%A6/1.htm">任务调度</a><a class="tag" taget="_blank" href="/search/yarn/1.htm">yarn</a> <div>随着Spark的逐渐成熟完善, 越来越多的可配置参数被添加到Spark中来, 本文试图通过阐述这其中部分参数的工作原理和配置思路, 和大家一起探讨一下如何根据实际场合对Spark进行配置优化。   由于篇幅较长,所以在这里分篇组织,如果要看最新完整的网页版内容,可以戳这里:http://spark-config.readthedocs.org/,主要是便</div> </li> <li><a href="/article/3711.htm" title="css3滤镜" target="_blank">css3滤镜</a> <span class="text-muted">wangkeheng</span> <a class="tag" taget="_blank" href="/search/html/1.htm">html</a><a class="tag" taget="_blank" href="/search/css/1.htm">css</a> <div>经常看到一些网站的底部有一些灰色的图标,鼠标移入的时候会变亮,开始以为是js操作src或者bg呢,搜索了一下,发现了一个更好的方法:通过css3的滤镜方法。 html代码: <a href='' class='icon'><img src='utv.jpg' /></a> css代码: .icon{-webkit-filter: graysc</div> </li> </ul> </div> </div> </div> <div> <div class="container"> <div class="indexes"> <strong>按字母分类:</strong> <a href="/tags/A/1.htm" target="_blank">A</a><a href="/tags/B/1.htm" target="_blank">B</a><a href="/tags/C/1.htm" target="_blank">C</a><a href="/tags/D/1.htm" target="_blank">D</a><a href="/tags/E/1.htm" target="_blank">E</a><a href="/tags/F/1.htm" target="_blank">F</a><a href="/tags/G/1.htm" target="_blank">G</a><a href="/tags/H/1.htm" target="_blank">H</a><a href="/tags/I/1.htm" target="_blank">I</a><a href="/tags/J/1.htm" target="_blank">J</a><a href="/tags/K/1.htm" target="_blank">K</a><a href="/tags/L/1.htm" target="_blank">L</a><a href="/tags/M/1.htm" target="_blank">M</a><a href="/tags/N/1.htm" target="_blank">N</a><a href="/tags/O/1.htm" target="_blank">O</a><a href="/tags/P/1.htm" target="_blank">P</a><a href="/tags/Q/1.htm" target="_blank">Q</a><a href="/tags/R/1.htm" target="_blank">R</a><a href="/tags/S/1.htm" target="_blank">S</a><a href="/tags/T/1.htm" target="_blank">T</a><a href="/tags/U/1.htm" target="_blank">U</a><a href="/tags/V/1.htm" target="_blank">V</a><a href="/tags/W/1.htm" target="_blank">W</a><a href="/tags/X/1.htm" target="_blank">X</a><a href="/tags/Y/1.htm" target="_blank">Y</a><a href="/tags/Z/1.htm" target="_blank">Z</a><a href="/tags/0/1.htm" target="_blank">其他</a> </div> </div> </div> <footer id="footer" class="mb30 mt30"> <div class="container"> <div class="footBglm"> <a target="_blank" href="/">首页</a> - <a target="_blank" href="/custom/about.htm">关于我们</a> - <a target="_blank" href="/search/Java/1.htm">站内搜索</a> - <a target="_blank" href="/sitemap.txt">Sitemap</a> - <a target="_blank" href="/custom/delete.htm">侵权投诉</a> </div> <div class="copyright">版权所有 IT知识库 CopyRight © 2000-2050 E-COM-NET.COM , All Rights Reserved. <!-- <a href="https://beian.miit.gov.cn/" rel="nofollow" target="_blank">京ICP备09083238号</a><br>--> </div> </div> </footer> <!-- 代码高亮 --> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shCore.js"></script> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shLegacy.js"></script> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shAutoloader.js"></script> <link type="text/css" rel="stylesheet" href="/static/syntaxhighlighter/styles/shCoreDefault.css"/> <script type="text/javascript" src="/static/syntaxhighlighter/src/my_start_1.js"></script> </body> </html>