XML入门笔记

XML 笔记

首先:学习 XML 需要有一定的 HTML JavaScript 的基础

一、什么是 XML

XML 是可扩展标记语言 e**X**tensible **M**arkup **L**anguage
多用来传输和储存数据

  • XML 是一种标记语言
  • XML 是用来传输数据的语言而不是显示数据
  • XML 语言需要自行定义标签并且具有自我描述性
    • XML 在意的是数据内容(传输信息)
    • HTML 在意的是数据的外观(显示信息)

举例说明:XML 文档实例 Jani 写给 Tove 的便签


<note>
<to>Toveto>
<from>Janifrom>
<heading>Reminderheading>
<body>Don't forget me this weekend!body>
note>

上面的这条便签具有自我描述性。它包含了发送者和接受者的信息,同时拥有标题以及消息主体。但是,这个 XML 文档仍然没有做任何事情。它仅仅是包装在 XML 标签中的纯粹的信息。我们需要编写软件或者程序,才能传送、接收和显示出这个文档。

通过 XML 可以发明自己的标签

  • 上述例子中标签中没有在任何 XML 标准中定义过
    XML 中没有预定义的标签相
  • 对比 HTML 中的标签全都是通过 HTML 定义过的标签
  • XML 允许创业者定义自己的标签和自己的文档结构

二、XML 的用途

XML 把数据从 HTML 分离

首先举一个例子当你需要在 HTML 文档中显示动态数据,那么每当数据改变的时候,都要花费我们大量的时间去编辑 HTML。通过 XML 数据能够给储存在独立的 XML 文件中。这样我们就可以专注于使用 HTML/CSS 进行显示和布局,并且可以在修改底层数据的时候不在需要对 HTML 进行改变。 通过使用几行 JavaScript 代码,我们可以读取一个外部 XML 文件,并更新我们的网页数据内容

XML 简化数据共享

XML 数据以纯文本格式进行存储,因此提供了一种独立与软件和硬件的数据储存方法。这就可以让创建不懂应用程序可以共享的数据变得更加容易

简化数据传输

互联网上的不兼容的系统之间交换数据对于程序员来说是一件很费时的事情,这时 yogaXML 交换数据就降低了从不兼容的应用程序中读取数据的复杂性

三、XML 的树结构

XML 文档形成了一种树的结构,它从 “根部” 开始,然后扩展到 “枝叶”。

树结构是通常被称为 XML 树,并且可以很容易地描述任何 XML 文档。
通过采用树状结构,你可以知道所有从根开始的后续的分行及支行。

一个 XML 文档实例

XML 文档使用简单的具有自我描述性的语法:


<note>
<to>Toveto>
<from>Janifrom>
<heading>Reminderheading>
<body>Don't forget me this weekend!body>
note>

第一行是 XML 的生命。它定义 XML 的版本(1.0)和所使用的编码(ISO-8859-1 = Latin-1 / 西欧字符集)。下一行描述文档的根元素(比如说:本文档是一个标签):

<note>

接下来的四行描述根的四个子元素(to,form,heading 以及 body):

<to>Toveto>
<from>Janifrom>
<heading>Reminderheading>
<body>Don't forget me this weekend!body>

最后一行的定义根元素的结尾:

note>

这个事例中描述的是一张 Jani 写给 Tove 的便签显示出了 XML 具有独特的自我描述性

XML 文档形成一种树结构

XML 文档必须包含根元素。钙元素是所有其他元素的父元素。
XML 文档中的元素形成了一颗文档树。

这棵树从根部开始,并扩展到树的最低端。
所有的元素都可以有子元素:

<root>
<child>
<subchild>.....subchild>
child>
root>

父、子以及通报等术语用于描述元素之间的关系。父元素拥有子元素。相同层级上的子元素成为问题(兄弟或姐妹)。
所有的元素都可以有文本内容和属性(类似 HTML 中)。

实例 XML 中的一本书:

XML入门笔记_第1张图片

<bookstore>
<book category="COOKING">
<title lang="en">Everyday Italiantitle>
<author>Giada De Laurentiisauthor>
<year>2005year>
<price>30.00price>
book>
<book category="CHILDREN">
<title lang="en">Harry Pottertitle>
<author>J K. Rowlingauthor>
<year>2005year>
<price>29.99price>
book>
<book category="WEB">
<title lang="en">Learning XMLtitle>
<author>Erik T. Rayauthor>
<year>2003year>
<price>39.95price>
book>
bookstore>

实例中的根元素是。文档中的所有元素都被包含在中。元素中有四个子元素:、<author>、<year>、<price></code>。</p> <h2 id="xml-语法">XML 语法</h2> <h3 id="语法规则">语法规则</h3> <h3 id="所有-xml-都必须有一个关闭标签">所有 XML 都必须有一个关闭标签</h3> <p>在 HTML 中,有些元素不必须有一个关闭标签:</p> <pre class="prettyprint"><code class="language-html hljs "><span class="hljs-tag"><<span class="hljs-title">p</span>></span>This is a paragraph. <span class="hljs-tag"><<span class="hljs-title">br</span>></span></code></pre> <p>而在 XML 中,<strong>省略关闭标签是非法的</strong></p> <pre class="prettyprint"><code class="language-xml hljs "><span class="hljs-pi"><?xml version="1.0" encoding="UTF-8" ?></span> <span class="hljs-tag"><<span class="hljs-title">p</span>></span>This is a paragraph.<span class="hljs-tag"></<span class="hljs-title">p</span>></span></code></pre> <p><strong>注释</strong>:打开标签和关闭标签通常被称为开始标签和结束标签,本质上是相同的。</p> <h3 id="xml-是大小写敏感的语言">XML 是大小写敏感的语言</h3> <p>XML 标签对大小写敏感,需要用相同的大小写来编写打开标签和关闭标签</p> <pre class="prettyprint"><code class="language-xml hljs "><span class="hljs-tag"><<span class="hljs-title">Message</span>></span>This is incorrect<span class="hljs-tag"></<span class="hljs-title">message</span>></span> <span class="hljs-tag"><<span class="hljs-title">message</span>></span>This is correct<span class="hljs-tag"></<span class="hljs-title">message</span>></span></code></pre> <h3 id="xml-必须正确嵌套">XML 必须正确嵌套</h3> <p>在 HTML 中,经常会有没有正确嵌套的元素:</p> <pre class="prettyprint"><code class="language-html hljs "><span class="hljs-tag"><<span class="hljs-title">b</span>></span><span class="hljs-tag"><<span class="hljs-title">i</span>></span>This text is bold and italic<span class="hljs-tag"></<span class="hljs-title">b</span>></span><span class="hljs-tag"></<span class="hljs-title">i</span>></span></code></pre> <p>而在 XML 中,所有元素都必须彼此正确的嵌套</p> <pre class="prettyprint"><code class="language-xml hljs "><span class="hljs-tag"><<span class="hljs-title">b</span>></span><span class="hljs-tag"><<span class="hljs-title">i</span>></span>This text is bold and italic<span class="hljs-tag"></<span class="hljs-title">i</span>></span><span class="hljs-tag"></<span class="hljs-title">b</span>></span></code></pre> <p>两者的区别是 i 和 b 的结束标签是否要和 i 和 b 的起始标签相对应。</p> <h3 id="xml-文档必须有根元素">XML 文档必须有根元素</h3> <p>XML 文档必须有一个元素是所有其他元素的<strong>父元素</strong>。该元素为<strong>根元素</strong>。</p> <pre class="prettyprint"><code class="language-xml hljs "><span class="hljs-tag"><<span class="hljs-title">root</span>></span> <span class="hljs-tag"><<span class="hljs-title">child</span>></span> <span class="hljs-tag"><<span class="hljs-title">subchild</span>></span>.....<span class="hljs-tag"></<span class="hljs-title">subchild</span>></span> <span class="hljs-tag"></<span class="hljs-title">child</span>></span> <span class="hljs-tag"></<span class="hljs-title">root</span>></span></code></pre> <h3 id="xml-属性值必须加引号">XML 属性值必须加引号</h3> <p>与 HTML 类似,XML 元素也可以拥有属性(名称、值得对)。 <br> 在 XML 中、XML 的属性值必须加引号。 <br> 请研究下面两个 XML 文档。第一个是错误的,第二个是正确的:</p> <pre class="prettyprint"><code class="language-xml hljs "><span class="hljs-tag"><<span class="hljs-title">note</span> <span class="hljs-attribute">date</span>=<span class="hljs-value">12</span>/<span class="hljs-attribute">11</span>/<span class="hljs-attribute">2007</span>></span> <span class="hljs-tag"><<span class="hljs-title">to</span>></span>Tove<span class="hljs-tag"></<span class="hljs-title">to</span>></span> <span class="hljs-tag"><<span class="hljs-title">from</span>></span>Jani<span class="hljs-tag"></<span class="hljs-title">from</span>></span> <span class="hljs-tag"></<span class="hljs-title">note</span>></span></code></pre> <pre class="prettyprint"><code class="language-xml hljs "><span class="hljs-tag"><<span class="hljs-title">note</span> <span class="hljs-attribute">date</span>=<span class="hljs-value">"12/11/2007"</span>></span> <span class="hljs-tag"><<span class="hljs-title">to</span>></span>Tove<span class="hljs-tag"></<span class="hljs-title">to</span>></span> <span class="hljs-tag"><<span class="hljs-title">from</span>></span>Jani<span class="hljs-tag"></<span class="hljs-title">from</span>></span> <span class="hljs-tag"></<span class="hljs-title">note</span>></span></code></pre> <h3 id="实体引用">实体引用</h3> <p>在 XML 中,一些字符拥有特殊的意义 <br> 如果我们把字符”<” 放到 XML 元素中,会发生错误,这是因为解析器会把它当做新元素的开始。 <br> 这样会产生 XML 错误:</p> <pre class="prettyprint"><code class="language-xml hljs "><span class="hljs-tag"><<span class="hljs-title">message</span>></span>if salary <span class="hljs-tag">< <span class="hljs-attribute">1000</span> <span class="hljs-attribute">then</span></<span class="hljs-attribute">message</span>></span></code></pre> <p>为了避免这个错误需要用<strong>实体引用</strong>来代替”<” 字符</p> <pre class="prettyprint"><code class="language-xml hljs "> <span class="hljs-tag"><<span class="hljs-title">message</span>></span>if salary < 1000 then<span class="hljs-tag"></<span class="hljs-title">message</span>></span></code></pre> <p>在 XML 中,有五个预定义的实体引用:</p> <p>在 XML 中,只有字符 “<” 和“&”确实是非法的,大于号是合法的但是用实体引用来代替它是好的习惯</p> <p><a href="http://img.e-com-net.com/image/info8/32d9408ec019401483bad1febda2cfa4.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/32d9408ec019401483bad1febda2cfa4.jpg" alt="XML入门笔记_第2张图片" title="" width="180" height="109" style="border:1px solid black;"></a></p> <p><strong>注释</strong>:在 XML 中,只有字符 “<” 和“&”确实是非法的。大于号是合法的,但是用实体引用来代替是推荐的方式</p> <h3 id="xml-中的注释">XML 中的注释</h3> <p>XML 中注释和 HTML 中的注释相同</p> <h3 id="在-xml-中空格会被保留">在 XML 中,空格会被保留</h3> <p>HTML 会把多个连续的空格字符裁减合并为一个</p> <table> <thead> <tr> <th>HTML</th> <th>hello tove</th> </tr> </thead> <tbody> <tr> <td>Output</td> <td>hello tove</td> </tr> </tbody> </table> <h3 id="xml-以-lf-储存换行">XML 以 LF 储存换行</h3> <p>在 Windows 程序中,换行通常是以一对字符来存储的:回车符(CR)和换行符(LF)。 <br> 在 Unix 和 Mac OSX 中,使用 LF 来存储新行。</p> <h2 id="xml-元素">XML 元素</h2> <h3 id="xml-元素概述">XML 元素概述</h3> <p>XML 元素是 XML 文档中不可缺少的,可以将 XML 元素看成是一个容器,其中存放了文本、元素、属性,媒体对象或所有的这些。</p> <hr> <p>XML 文档包含 XML 元素。 <br> 每个 XML 文档包含一个或者多个元素,其范围是任一分隔的有开始和结束标记,或者为空元素,用一个空元素标签。</p> <h3 id="什么是-xml-元素">什么是 XML 元素?</h3> <p>XML 元素指的是从(且包括)开始标签到(且包括)结束标签的部分。 <br> 一个元素可以包含:</p> <ul> <li>其他元素</li> <li>文本</li> <li>属性</li> <li>或混合以上所有</li> </ul> <pre class="prettyprint"><code class="language-xml hljs "><span class="hljs-tag"><<span class="hljs-title">bookstore</span>></span> <span class="hljs-tag"><<<span class="hljs-attribute">title</span>></span>Harry Potter<span class="hljs-tag"></<span class="hljs-title">title</span>></span> <span class="hljs-tag"><<span class="hljs-title">author</span>></span>J K. Rowling<span class="hljs-tag"></<span class="hljs-title">author</span>></span> <span class="hljs-tag"><<span class="hljs-title">year</span>></span>2005<span class="hljs-tag"></<span class="hljs-title">year</span>></span> <span class="hljs-tag"><<span class="hljs-title">price</span>></span>29.99<span class="hljs-tag"></<span class="hljs-title">price</span>></span> <span class="hljs-tag"></<span class="hljs-title">book</span>></span> <span class="hljs-tag"><<span class="hljs-title">book</span> <span class="hljs-attribute">category</span>=<span class="hljs-value">"WEB"</span>></span> <span class="hljs-tag"><<span class="hljs-title">title</span>></span>Learning XML<span class="hljs-tag"></<span class="hljs-title">title</span>></span> <span class="hljs-tag"><<span class="hljs-title">author</span>></span>Erik T. Ray<span class="hljs-tag"></<span class="hljs-title">author</span>></span> <span class="hljs-tag"><<span class="hljs-title">year</span>></span>2003<span class="hljs-tag"></<span class="hljs-title">year</span>></span> <span class="hljs-tag"><<span class="hljs-title">price</span>></span>39.95<span class="hljs-tag"></<span class="hljs-title">price</span>></span> <span class="hljs-tag"></<span class="hljs-title">book</span>></span> <span class="hljs-tag"></<span class="hljs-title">bookstore</span>></span></code></pre> <p>上述代码描述的是 bookstore 中的两本书 <br> book 元素也有<strong>属性</strong>,<code><title>、<author>、<year> 和 <price></code> 有文本内容,因为他们包含文本。</p> <h3 id="xml-元素的命名规则">XML 元素的命名规则</h3> <p>XML 元素必须遵从一下命名规则</p> <ul> <li>名称可以包含字母、数字以及其他字符</li> <li>名称不能以数字或者标点符号开始</li> <li><p>名称不能以字母 xml(不区分大小写的任何 xml 组合)开始</p></li> <li><p>名称不能包含空格</p></li> </ul> <p>可使用任何名称,没有保留的字词。</p> <h3 id="最佳命名习惯">最佳命名习惯</h3> <p>使名称具有描述性。使用下划线的名称也很不错:、。</p> <p>名称应简短和简单,比如:,而不是:。</p> <p>避免 “-” 字符。如果您按照这样的方式进行命名:”first-name”,一些软件会认为您想要从 first 里边减去 name。</p> <p>避免 “.” 字符。如果您按照这样的方式进行命名:”first.name”,一些软件会认为 “name” 是对象 “first” 的属性。</p> <p>避免 “:” 字符。冒号会被转换为命名空间来使用(稍后介绍)。</p> <p>XML 文档经常有一个对应的数据库,其中的字段会对应 XML 文档中的元素。有一个实用的经验,即使用数据库的命名规则来命名 XML 文档中的元素。</p> <p>在 XML 中,éòá 等非英语字母是完全合法的,不过需要留意,您的软件供应商不支持这些字符时可能出现的问题。</p> <h3 id="xml-元素是可扩展的">XML 元素是可扩展的</h3> <p>XML 元素的扩展,便于携带更多的信息。 <br> 如下 XML 实例</p> <p>请看下面的 XML 实例: </p> <pre class="prettyprint"><code class="language-xml hljs "><span class="hljs-tag"><<span class="hljs-title">note</span>></span> <span class="hljs-tag"><<span class="hljs-title">to</span>></span>Tove<span class="hljs-tag"></<span class="hljs-title">to</span>></span> <span class="hljs-tag"><<span class="hljs-title">from</span>></span>Jani<span class="hljs-tag"></<span class="hljs-title">from</span>></span> <span class="hljs-tag"><<span class="hljs-title">body</span>></span>Don't forget me this weekend!<span class="hljs-tag"></<span class="hljs-title">body</span>></span> <span class="hljs-tag"></<span class="hljs-title">note</span>></span></code></pre> <p>设想我们创建了一个应用程序,可将<code><to>、<from> 以及 <body></code>元素从 XML 文档中提取出来,并产生以下的输出:</p> <p><a href="http://img.e-com-net.com/image/info8/675935ef59654ba09981128f6868e1e7.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/675935ef59654ba09981128f6868e1e7.jpg" alt="输出" title="" width="180" height="38"></a></p> <p>这时我们可以在文档中添加一些额外的信息:</p> <pre class="prettyprint"><code class="language-xml hljs "><span class="hljs-tag"><<span class="hljs-title">note</span>></span> <span class="hljs-tag"><<span class="hljs-title">date</span>></span>2008-01-10<span class="hljs-tag"></<span class="hljs-title">date</span>></span> <span class="hljs-tag"><<span class="hljs-title">to</span>></span>Tove<span class="hljs-tag"></<span class="hljs-title">to</span>></span> <span class="hljs-tag"><<span class="hljs-title">from</span>></span>Jani<span class="hljs-tag"></<span class="hljs-title">from</span>></span> <span class="hljs-tag"><<span class="hljs-title">heading</span>></span>Reminder<span class="hljs-tag"></<span class="hljs-title">heading</span>></span> <span class="hljs-tag"><<span class="hljs-title">body</span>></span>Don't forget me this weekend!<span class="hljs-tag"></<span class="hljs-title">body</span>></span> <span class="hljs-tag"></<span class="hljs-title">note</span>></span></code></pre> <p>我们即使加上了这些内容程序不会因此而崩溃或者中断,这个程序仍然可以找到 XML 中的 to、from 以及 body 元素,并且产生同样的输出。XML 的优势之一,就是可以在不中断应用程序的情况下进行扩展。 <br> 另外:XML 中,所有的元素必须有结束标记!</p> <h2 id="xml-属性">XML 属性</h2> <h3 id="xml-的属性">XML 的属性</h3> <p>在 XML 的元素中,一个 XML 元素可以有一个或多个属性。 <br> 属性是 XML 元素的一部分,每一个元素可以有多个独特的属性。属性提供了有关 XML 元素的详细信息 XML 属性始终都是一个 名称 / 值 的对 <br> 在 HTML 中,属性提供有关元素的额外信息。</p> <pre class="prettyprint"><code class="language-html hljs "><span class="hljs-tag"><<span class="hljs-title">img</span> <span class="hljs-attribute">src</span>=<span class="hljs-value">"computer.gif"</span>></span> <span class="hljs-tag"><<span class="hljs-title">a</span> <span class="hljs-attribute">href</span>=<span class="hljs-value">"demo.html"</span>></span></code></pre> <p>属性通常提供不属于数据组成部分的信息。在下面的实例中,文件类型与数据无关,但是对需要处理这个元素的软件来说却很重要:</p> <pre class="prettyprint"><code class="language-html hljs "><span class="hljs-tag"><<span class="hljs-title">file</span> <span class="hljs-attribute">type</span>=<span class="hljs-value">"gif"</span>></span>computer.gif<span class="hljs-tag"></<span class="hljs-title">file</span>></span></code></pre> <h3 id="xml-属性必须加引号">XML 属性必须加引号</h3> <p>属性值必须被引号包围,不过单引号双引号都可以使用 EP:</p> <pre class="prettyprint"><code class="language-xml hljs "><span class="hljs-tag"><<span class="hljs-title">person</span> <span class="hljs-attribute">sex</span> = "<span class="hljs-attribute">female</span>"></span> /or <span class="hljs-tag"><<span class="hljs-title">person</span> <span class="hljs-attribute">sex</span> = '<span class="hljs-attribute">female</span>'></span></code></pre> <p>如果属性本身包含双引号可以使用单引号</p> <pre class="prettyprint"><code class="language-xml hljs "><span class="hljs-tag"><<span class="hljs-title">gangster</span> <span class="hljs-attribute">name</span>=<span class="hljs-value">'George "Shotgun" Ziegler'</span>></span></code></pre> <p>或者可以使用字符实体:</p> <pre class="prettyprint"><code class="language-xml hljs "><span class="hljs-tag"><<span class="hljs-title">gangster</span> <span class="hljs-attribute">name</span>=<span class="hljs-value">"George"</span><span class="hljs-value">Shotgun"Ziegler"</span>></span></code></pre> <h3 id="xml-元素-vs-属性">XML 元素 vs. 属性</h3> <p>先看一个实例:</p> <pre class="prettyprint"><code class="language-xml hljs "><span class="hljs-tag"><<span class="hljs-title">person</span> <span class="hljs-attribute">sex</span>=<span class="hljs-value">"female"</span>></span> <span class="hljs-tag"><<span class="hljs-title">firstname</span>></span>Anna<span class="hljs-tag"></<span class="hljs-title">firstname</span>></span> <span class="hljs-tag"><<span class="hljs-title">lastname</span>></span>Smith<span class="hljs-tag"></<span class="hljs-title">lastname</span>></span> <span class="hljs-tag"></<span class="hljs-title">person</span>></span> </code></pre> <pre class="prettyprint"><code class="language-xml hljs "><span class="hljs-tag"><<span class="hljs-title">person</span>></span> <span class="hljs-tag"><<span class="hljs-title">sex</span>></span>female<span class="hljs-tag"></<span class="hljs-title">sex</span>></span> <span class="hljs-tag"><<span class="hljs-title">firstname</span>></span>Anna<span class="hljs-tag"></<span class="hljs-title">firstname</span>></span> <span class="hljs-tag"><<span class="hljs-title">lastname</span>></span>Smith<span class="hljs-tag"></<span class="hljs-title">lastname</span>></span> <span class="hljs-tag"></<span class="hljs-title">person</span>></span></code></pre> <p>在第一个实例中,sex 是一个属性。在第二个实例中,sex 是一个元素。这两个实例都是用来提供相同的信息的。什么时候使用属性没有固定的要求。在 HTML 中,属性用起来很方便,但是在 XML 中,尽量避免使用属性,如果信息感觉起来很像数据,尽量使用元素。</p> <h3 id="推荐方式">推荐方式</h3> <p>一下三个 XML 文档中所包含的内容是完全相同的: <br> 第一个实例中使用 date 属性:</p> <pre class="prettyprint"><code class="language-xml hljs "><span class="hljs-tag"><<span class="hljs-title">note</span> <span class="hljs-attribute">date</span>=<span class="hljs-value">"10/01/2008"</span>></span> <span class="hljs-tag"><<span class="hljs-title">to</span>></span>Tove<span class="hljs-tag"></<span class="hljs-title">to</span>></span> <span class="hljs-tag"><<span class="hljs-title">from</span>></span>Jani<span class="hljs-tag"></<span class="hljs-title">from</span>></span> <span class="hljs-tag"><<span class="hljs-title">heading</span>></span>Reminder<span class="hljs-tag"></<span class="hljs-title">heading</span>></span> <span class="hljs-tag"><<span class="hljs-title">body</span>></span>Don't forget me this weekend!<span class="hljs-tag"></<span class="hljs-title">body</span>></span> <span class="hljs-tag"></<span class="hljs-title">note</span>></span></code></pre> <p>第二个实例中使用 date 元素:</p> <pre class="prettyprint"><code class="language-xml hljs "><span class="hljs-tag"><<span class="hljs-title">note</span>></span> <span class="hljs-tag"><<span class="hljs-title">date</span>></span>10/01/2008<span class="hljs-tag"></<span class="hljs-title">date</span>></span> <span class="hljs-tag"><<span class="hljs-title">to</span>></span>Tove<span class="hljs-tag"></<span class="hljs-title">to</span>></span> <span class="hljs-tag"><<span class="hljs-title">from</span>></span>Jani<span class="hljs-tag"></<span class="hljs-title">from</span>></span> <span class="hljs-tag"><<span class="hljs-title">heading</span>></span>Reminder<span class="hljs-tag"></<span class="hljs-title">heading</span>></span> <span class="hljs-tag"><<span class="hljs-title">body</span>></span>Don't forget me this weekend!<span class="hljs-tag"></<span class="hljs-title">body</span>></span> <span class="hljs-tag"></<span class="hljs-title">note</span>></span></code></pre> <p>第三个实例中使用扩展的 date 元素(鼎力推荐):</p> <pre class="prettyprint"><code class="language-xml hljs "><span class="hljs-tag"><<span class="hljs-title">note</span>></span> <span class="hljs-tag"><<span class="hljs-title">date</span>></span> <span class="hljs-tag"><<span class="hljs-title">day</span>></span>10<span class="hljs-tag"></<span class="hljs-title">day</span>></span> <span class="hljs-tag"><<span class="hljs-title">month</span>></span>01<span class="hljs-tag"></<span class="hljs-title">month</span>></span> <span class="hljs-tag"><<span class="hljs-title">year</span>></span>2008<span class="hljs-tag"></<span class="hljs-title">year</span>></span> <span class="hljs-tag"></<span class="hljs-title">date</span>></span> <span class="hljs-tag"><<span class="hljs-title">to</span>></span>Tove<span class="hljs-tag"></<span class="hljs-title">to</span>></span> <span class="hljs-tag"><<span class="hljs-title">from</span>></span>Jani<span class="hljs-tag"></<span class="hljs-title">from</span>></span> <span class="hljs-tag"><<span class="hljs-title">heading</span>></span>Reminder<span class="hljs-tag"></<span class="hljs-title">heading</span>></span> <span class="hljs-tag"><<span class="hljs-title">body</span>></span>Don't forget me this weekend!<span class="hljs-tag"></<span class="hljs-title">body</span>></span> <span class="hljs-tag"></<span class="hljs-title">note</span>></span></code></pre> <h3 id="需要避免的-xml-属性">需要避免的 XML 属性</h3> <p>因为使用属性而引其的一些问题:</p> <ul> <li>属性不能包含多个值(元素可以)</li> <li>属性不能包含树结构(元素可以)</li> <li>属性不容易扩展(为未来的变化)</li> </ul> <p>属性难以阅读和维护。请尽量使用元素来描述数据。</p> <h3 id="针对元数据的-xml-属性">针对元数据的 XML 属性</h3> <p>有时回想元素分配 ID 引用可用于标识 XML 元素,它起作用的方式与 HTML 中 id 属性是一样的。下面实例演示了这种情况:</p> <pre class="prettyprint"><code class="language-xml hljs "><span class="hljs-tag"><<span class="hljs-title">messages</span>></span> <span class="hljs-tag"><<span class="hljs-title">note</span> <span class="hljs-attribute">id</span>=<span class="hljs-value">"501"</span>></span> <span class="hljs-tag"><<span class="hljs-title">to</span>></span>Tove<span class="hljs-tag"></<span class="hljs-title">to</span>></span> <span class="hljs-tag"><<span class="hljs-title">from</span>></span>Jani<span class="hljs-tag"></<span class="hljs-title">from</span>></span> <span class="hljs-tag"><<span class="hljs-title">heading</span>></span>Reminder<span class="hljs-tag"></<span class="hljs-title">heading</span>></span> <span class="hljs-tag"><<span class="hljs-title">body</span>></span>Don't forget me this weekend!<span class="hljs-tag"></<span class="hljs-title">body</span>></span> <span class="hljs-tag"></<span class="hljs-title">note</span>></span> <span class="hljs-tag"><<span class="hljs-title">note</span> <span class="hljs-attribute">id</span>=<span class="hljs-value">"502"</span>></span> <span class="hljs-tag"><<span class="hljs-title">to</span>></span>Jani<span class="hljs-tag"></<span class="hljs-title">to</span>></span> <span class="hljs-tag"><<span class="hljs-title">from</span>></span>Tove<span class="hljs-tag"></<span class="hljs-title">from</span>></span> <span class="hljs-tag"><<span class="hljs-title">heading</span>></span>Re: Reminder<span class="hljs-tag"></<span class="hljs-title">heading</span>></span> <span class="hljs-tag"><<span class="hljs-title">body</span>></span>I will not<span class="hljs-tag"></<span class="hljs-title">body</span>></span> <span class="hljs-tag"></<span class="hljs-title">note</span>></span> <span class="hljs-tag"></<span class="hljs-title">messages</span>></span></code></pre> <p>上述的 id 属性仅仅只是一个标识符,用于标识不同的标签。他并不是便签数据的组成部分。 <br> 在这里笔者想说的是:元数据(有关数据的数据)应当存储为属性,而数据本身应当存储为元素。</p> <h3 id="xml-属性需要遵循的规则">XML 属性需要遵循的规则</h3> <ul> <li>属性名称不能在同一起始标签或空元素标签中出现一次</li> <li>一个属性必须使用属性表声明的文档类型定义(DTD)的声明</li> <li>属性值不能包含直接或间接的实体引用外部实体</li> <li>任何实体的替换文本成为直接或间接的属性值中不能包含任何小于号</li> </ul> <h2 id="xml-dtd">XML DTD</h2> <h3 id="xml-验证">XML 验证</h3> <p>DTD 为英文 Document Type Definition,中文意思为 “文档类型定义”。</p> <hr> <p>拥有正确语法的 XML 被称为 “形势良好” 的 XML。 <br> 通过 DTD 验证的 XML 的 “合法” 的 XML。</p> <h3 id="形式良好的-xml-文档">形式良好的 XML 文档</h3> <p>“形式良好” 的 XML 文档拥有正确的语法。 <br> 在前面的章节描述的语法规则:</p> <ul> <li>XML 文档必须有一个根元素</li> <li> XML 元素都必须有一个关闭标签</li> <li> XML 标签对大小写敏感</li> <li> XML 元素必须被正确的嵌套</li> <li> XML 属性值必须加引号</li> </ul> <pre class="prettyprint"><code class="language-xml hljs "><span class="hljs-pi"><?xml version="1.0" encoding="ISO-8859-1"?></span> <span class="hljs-tag"><<span class="hljs-title">note</span>></span> <span class="hljs-tag"><<span class="hljs-title">to</span>></span>Tove<span class="hljs-tag"></<span class="hljs-title">to</span>></span> <span class="hljs-tag"><<span class="hljs-title">from</span>></span>Jani<span class="hljs-tag"></<span class="hljs-title">from</span>></span> <span class="hljs-tag"><<span class="hljs-title">heading</span>></span>Reminder<span class="hljs-tag"></<span class="hljs-title">heading</span>></span> <span class="hljs-tag"><<span class="hljs-title">body</span>></span>Don't forget me this weekend!<span class="hljs-tag"></<span class="hljs-title">body</span>></span> <span class="hljs-tag"></<span class="hljs-title">note</span>></span></code></pre> <h3 id="验证-xml-文档">验证 XML 文档</h3> <p>合法的 XML 文档是 “形式良好” 的 XML 文档,这也符合文档类型定义(DTD)的规则:</p> <pre class="prettyprint"><code class="language-xml hljs "><span class="hljs-pi"><?xml version="1.0" encoding="ISO-8859-1"?></span> <span class="hljs-doctype"><!DOCTYPE note SYSTEM "Note.dtd"></span> <span class="hljs-tag"><<span class="hljs-title">note</span>></span> <span class="hljs-tag"><<span class="hljs-title">to</span>></span>Tove<span class="hljs-tag"></<span class="hljs-title">to</span>></span> <span class="hljs-tag"><<span class="hljs-title">from</span>></span>Jani<span class="hljs-tag"></<span class="hljs-title">from</span>></span> <span class="hljs-tag"><<span class="hljs-title">heading</span>></span>Reminder<span class="hljs-tag"></<span class="hljs-title">heading</span>></span> <span class="hljs-tag"><<span class="hljs-title">body</span>></span>Don't forget me this weekend!<span class="hljs-tag"></<span class="hljs-title">body</span>></span> <span class="hljs-tag"></<span class="hljs-title">note</span>></span></code></pre> <p>在上面的实践中,DOCTYPE 声明是对外部 DTD 文件的引用。</p> <h3 id="xml-dtd-1">XML DTD</h3> <p>DTD 的目的是定义 XML 文档的结构。他使用了一系列的合法的元素来定义文档的结构:</p> <pre class="prettyprint"><code class="language-xml hljs "><span class="hljs-doctype"><!DOCTYPE note [ <!ELEMENT note (to,from,heading,body)> <!ELEMENT to (#PCDATA)> <!ELEMENT from (#PCDATA)> <!ELEMENT heading (#PCDATA)> <!ELEMENT body (#PCDATA)> ]></span></code></pre> <h2 id="xml-验证器">XML 验证器</h2> <p>使用我们额 XML 验证器来对我们的 XML 文件进行语法检查</p> <h3 id="xml-错误会终止您的程序">XML 错误会终止您的程序</h3> <p>XML 文档中的错误会终止我们的 XML 程序。 <br> W3C 的 XML 规范声明:如果 XML 文档存在错误,那么程序就不应当继续处理这个文件。理由是:XML 软件应当轻巧快速,具有良好的兼容。 <br> 如果使用 HTML,创建包含大量错误的文档是有可能的(比如忘记添加结束标签),其中一个主要的原因是 HTML 浏览器相当的臃肿,兼容性也很差,并且他们有自己的方式来确定当发现错误时文档应该显示为什么样子。<strong>使用 XML 时,这种情况不应当存在</strong></p> <h2 id="查看-xml-文件">查看 XML 文件</h2> <h3 id="查看-xml-文件-1">查看 XML 文件</h3> <p>XML 文件中包含了许多元素,XML 格式的信息和其他标记的基本单元,以及各种各样的数据。查看文件顾名思义就是对 XML 文件进行查看。</p> <hr> <p>首先在所有的主流浏览器中,均能查看原始的 XML 文件,但是不要指望 XML 文件会直接显示为 HTML 页面的形式。</p> <pre class="prettyprint"><code class="language-xml hljs "><span class="hljs-pi"><?xml version="1.0" encoding="ISO-8859-1"?></span> - <span class="hljs-tag"><<span class="hljs-title">note</span>></span> <span class="hljs-tag"><<span class="hljs-title">to</span>></span>Tove<span class="hljs-tag"></<span class="hljs-title">to</span>></span> <span class="hljs-tag"><<span class="hljs-title">from</span>></span>Jani<span class="hljs-tag"></<span class="hljs-title">from</span>></span> <span class="hljs-tag"><<span class="hljs-title">heading</span>></span>Reminder<span class="hljs-tag"></<span class="hljs-title">heading</span>></span> <span class="hljs-tag"><<span class="hljs-title">body</span>></span>Don't forget me this weekend!<span class="hljs-tag"></<span class="hljs-title">body</span> ></span> <span class="hljs-tag"></<span class="hljs-title">note</span>></span></code></pre> <p>XML 文档将显示为代码颜色化的根以及元素,通过点击元素左侧的加号(+)或者减号(-),可以展开或者收起元素的结构。要查看原始的 XML 源(不包括 + 和 - 符号),选择 “查看页面源代码” 或者从浏览器菜单中的 “查看源文件” 即可。 <br> <strong>注释</strong>:在 Safari 中,只有元素的文本将被显示,要查看原始的 XML,必须有机单击页面,选择 “查看源文件”。</p> <h2 id="xml-和-css">XML 和 CSS</h2> <h3 id="使用-css-来显示-xml">使用 CSS 来显示 XML</h3> <p>通过使用 CSS 可以显示信息到 XML 文档中</p> <h3 id="使用-css-显示-xml">使用 CSS 显示 XML</h3> <p>使用 CSS 来格式化 XML 文档是有可能的。 <br> 下面是关于如何使用 css 样式来格式化 XML 文档:</p> <p>XML 文件:CD 目录.</p> <p>样式表: CSS 文件</p> <p>最后,查看:使用 CSS 文件格式化 CD 目录</p> <p>下面是 XML 文件的一小部分。第二行把 XML 文件链接到 CSS 文件:</p> <pre class="prettyprint"><code class="language-xml hljs "><span class="hljs-pi"><?xml version="1.0" encoding="ISO-8859-1"?></span> <span class="hljs-pi"><?xml-stylesheet type="text/css" href="cd_catalog.css"?></span> <span class="hljs-tag"><<span class="hljs-title">CATALOG</span>></span> <span class="hljs-tag"><<span class="hljs-title">CD</span>></span> <span class="hljs-tag"><<span class="hljs-title">TITLE</span>></span>Empire Burlesque<span class="hljs-tag"></<span class="hljs-title">TITLE</span>></span> <span class="hljs-tag"><<span class="hljs-title">ARTIST</span>></span>Bob Dylan<span class="hljs-tag"></<span class="hljs-title">ARTIST</span>></span> <span class="hljs-tag"><<span class="hljs-title">COUNTRY</span>></span>USA<span class="hljs-tag"></<span class="hljs-title">COUNTRY</span>></span> <span class="hljs-tag"><<span class="hljs-title">COMPANY</span>></span>Columbia<span class="hljs-tag"></<span class="hljs-title">COMPANY</span>></span> <span class="hljs-tag"><<span class="hljs-title">PRICE</span>></span>10.90<span class="hljs-tag"></<span class="hljs-title">PRICE</span>></span> <span class="hljs-tag"><<span class="hljs-title">YEAR</span>></span>1985<span class="hljs-tag"></<span class="hljs-title">YEAR</span>></span> <span class="hljs-tag"></<span class="hljs-title">CD</span>></span> <span class="hljs-tag"><<span class="hljs-title">CD</span>></span> <span class="hljs-tag"><<span class="hljs-title">TITLE</span>></span>Hide your heart<span class="hljs-tag"></<span class="hljs-title">TITLE</span>></span> <span class="hljs-tag"><<span class="hljs-title">ARTIST</span>></span>Bonnie Tyler<span class="hljs-tag"></<span class="hljs-title">ARTIST</span>></span> <span class="hljs-tag"><<span class="hljs-title">COUNTRY</span>></span>UK<span class="hljs-tag"></<span class="hljs-title">COUNTRY</span>></span> <span class="hljs-tag"><<span class="hljs-title">COMPANY</span>></span>CBS Records<span class="hljs-tag"></<span class="hljs-title">COMPANY</span>></span> <span class="hljs-tag"><<span class="hljs-title">PRICE</span>></span>9.90<span class="hljs-tag"></<span class="hljs-title">PRICE</span>></span> <span class="hljs-tag"><<span class="hljs-title">YEAR</span>></span>1988<span class="hljs-tag"></<span class="hljs-title">YEAR</span>></span> <span class="hljs-tag"></<span class="hljs-title">CD</span>></span> . . . <span class="hljs-tag"></<span class="hljs-title">CATALOG</span>></span></code></pre> <p>使用 CSS 格式化 XML 不是常用的方法。</p> </div> </div> </div> </div> </div> <!--PC和WAP自适应版--> <div id="SOHUCS" sid="1294886508355985408"></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">你可能感兴趣的:(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/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/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/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/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/1835282965358276608.htm" title="ajax的同源策略" target="_blank">ajax的同源策略</a> <span class="text-muted">Spring_Bear</span> <div>问题之前帮忙做的广告机器人数据提交的部分,利用ajax的XMLHTTPRequest提交到服务器的时候总是报错,错误类型是不同源。想到浏览器中的同源策略,明白了问题的原因。同源策略简单的说,就是浏览器不允许两个不同源的域名之间交换信息,那么这里就有两个问题。一是,什么信息不允许交换;二是,怎样算不同源。阮一峰的这篇博客浏览器同源政策及其规避方法其实已经介绍得比较清楚。引用一下,第一个问题:目前,如</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/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/1835173073033195520.htm" title="MyBatis系统学习(一)——项目结构及其含义" target="_blank">MyBatis系统学习(一)——项目结构及其含义</a> <span class="text-muted">OEC小胖胖</span> <a class="tag" taget="_blank" href="/search/MyBatis/1.htm">MyBatis</a><a class="tag" taget="_blank" href="/search/mybatis/1.htm">mybatis</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/web/1.htm">web</a><a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a> <div>1.MyBatis简介MyBatis是一款优秀的持久层框架,它通过SQL映射的方式实现Java对数据库操作的映射,既保留了SQL语句的灵活性,也简化了代码的编写。在一个MyBatis项目中,核心部分主要有:配置文件(mybatis-config.xml)映射文件(Mapper.xml)实体类(Entity/POJO)接口类(Mapper接口)MyBatis会话工厂(SqlSessionFactor</div> </li> <li><a href="/article/1835151522573414400.htm" title="spring整合hibernate最基础的方式" target="_blank">spring整合hibernate最基础的方式</a> <span class="text-muted">木木ainiks</span> <a class="tag" taget="_blank" href="/search/hibernate/1.htm">hibernate</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>1创建文件,可以创建web文件目录2导入jar包,需要导全,我就是jar没导全,后面怎么运行都不对3配置applicationContext.xml<beanid="sessionFactory"</div> </li> <li><a href="/article/1835136270758670336.htm" title="⭐Unity 安卓环境中正确地读取和处理 XML 文件" target="_blank">⭐Unity 安卓环境中正确地读取和处理 XML 文件</a> <span class="text-muted">惊鸿醉</span> <a class="tag" taget="_blank" href="/search/Unity/1.htm">Unity</a><a class="tag" taget="_blank" href="/search/unity/1.htm">unity</a><a class="tag" taget="_blank" href="/search/android/1.htm">android</a><a class="tag" taget="_blank" href="/search/xml/1.htm">xml</a> <div>写了一个选择题Demo,电脑包和编辑器内无问题,但是打包安卓手机之后题目无法正常使用,想到的是安卓环境中正确地读取文件的问题改进方案:1.由于XmlDocument.Load方法在Android上的路径问题(由于文件位于APK内部,无法像在文件系统中那样直接访问),需要先使用UnityWebRequest来异步加载文件内容,然后再解析XML。2.异步处理:修改你的代码,以支持异步文件加载和处理,这</div> </li> <li><a href="/article/1835131224121765888.htm" title="ros2中使用launch.xml启动时,怎么在命令行里设置参数,或者加载参数文件(params.yaml)" target="_blank">ros2中使用launch.xml启动时,怎么在命令行里设置参数,或者加载参数文件(params.yaml)</a> <span class="text-muted">code .</span> <a class="tag" taget="_blank" href="/search/Autoware/1.htm">Autoware</a><a class="tag" taget="_blank" href="/search/%E8%87%AA%E5%8A%A8%E9%A9%BE%E9%A9%B6/1.htm">自动驾驶</a><a class="tag" taget="_blank" href="/search/ROS2/1.htm">ROS2</a><a class="tag" taget="_blank" href="/search/xml/1.htm">xml</a><a class="tag" taget="_blank" href="/search/Ros2/1.htm">Ros2</a><a class="tag" taget="_blank" href="/search/%E8%87%AA%E5%8A%A8%E9%A9%BE%E9%A9%B6/1.htm">自动驾驶</a><a class="tag" taget="_blank" href="/search/%E6%9C%BA%E5%99%A8%E4%BA%BA/1.htm">机器人</a> <div>在ROS2中使用launch.xml启动时,可以通过命令行设置参数或加载参数文件(如params.yaml)。以下是具体的方法:1.在命令行中设置参数你可以在运行ros2launch命令时直接设置参数,使用key:=value的语法。例如:ros2launchparam_name:=param_value例如,如果你有一个参数background_r,你可以这样设置:ros2launchmy_pa</div> </li> <li><a href="/article/1835129584400560128.htm" title="互联网 Java 工程师面试题(Java 面试题四)" target="_blank">互联网 Java 工程师面试题(Java 面试题四)</a> <span class="text-muted">苹果酱0567</span> <a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95%E9%A2%98%E6%B1%87%E6%80%BB%E4%B8%8E%E8%A7%A3%E6%9E%90/1.htm">面试题汇总与解析</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E4%B8%AD%E9%97%B4%E4%BB%B6/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><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/boot/1.htm">boot</a><a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a> <div>下面列出这份Java面试问题列表包含的主题多线程,并发及线程基础数据类型转换的基本原则垃圾回收(GC)Java集合框架数组字符串GOF设计模式SOLID抽象类与接口Java基础,如equals和hashcode泛型与枚举JavaIO与NIO常用网络协议Java中的数据结构和算法正则表达式JVM底层Java最佳实JDBCDate,Time与CalendarJava处理XMLJUnit编程现在是时候给</div> </li> <li><a href="/article/1835125415920889856.htm" title="数据格式:什么是JSON和XML" target="_blank">数据格式:什么是JSON和XML</a> <span class="text-muted">isNotNullX</span> <a class="tag" taget="_blank" href="/search/json/1.htm">json</a><a class="tag" taget="_blank" href="/search/xml/1.htm">xml</a> <div>JSON和XML都是数据交换的一种格式,用于在不同的系统和应用程序之间传输和存储数据。本文将解释JSON和XML的基础内容,并探讨两者的不同。一·什么是JSON?1.JSON(JavaScriptObjectNotation)即JavaScript对象标记法:-JSON是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。-JSON基于JavaScript的一个子集,但JSON是</div> </li> <li><a href="/article/1835110923262586880.htm" title="MyBatis 如何将 Mapper 接口与其 XML 映射文件关联:深入原理与实现" target="_blank">MyBatis 如何将 Mapper 接口与其 XML 映射文件关联:深入原理与实现</a> <span class="text-muted">OEC小胖胖</span> <a class="tag" taget="_blank" href="/search/web%E5%90%8E%E7%AB%AF/1.htm">web后端</a><a class="tag" taget="_blank" href="/search/mybatis/1.htm">mybatis</a><a class="tag" taget="_blank" href="/search/xml/1.htm">xml</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/web/1.htm">web</a><a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a> <div>MyBatis如何将Mapper接口与其XML映射文件关联:深入原理与实现1.概述MyBatis是一个简单、灵活的持久层框架,它通过SQL语句将Java对象与数据库进行映射。MyBatis支持基于XML和注解的配置方式。在实际开发中,XML映射文件与Mapper接口的关联是MyBatis的核心功能之一。通过这种关联,开发者可以在Mapper接口中定义方法,并在XML文件中编写SQL语句,从而实现数</div> </li> <li><a href="/article/1835110293278126080.htm" title="史上最全的maven的pom.xml文件详解" target="_blank">史上最全的maven的pom.xml文件详解</a> <span class="text-muted">Meta999</span> <a class="tag" taget="_blank" href="/search/Maven/1.htm">Maven</a> <div>注:详解文件中,用红色进行标注的是平常项目中常用的配置节点。要详细学习!转载的,太经典了、、、、欢迎收藏xxxxxxxxxxxx4.0.0xxxxxxjar1.0-SNAPSHOTxxx-mavenhttp://maven.apache.orgAmavenprojecttostudymaven.jirahttp://jira.baidu.com/banseonDemobanseon@126.com</div> </li> <li><a href="/article/1835109788632051712.htm" title="微信小程序使用canvas画图保存图片到手机相册" target="_blank">微信小程序使用canvas画图保存图片到手机相册</a> <span class="text-muted">岩岩很哇塞!</span> <a class="tag" taget="_blank" href="/search/%E5%BE%AE%E4%BF%A1%E5%B0%8F%E7%A8%8B%E5%BA%8F/1.htm">微信小程序</a><a class="tag" taget="_blank" href="/search/%E5%BE%AE%E4%BF%A1%E5%B0%8F%E7%A8%8B%E5%BA%8F/1.htm">微信小程序</a><a class="tag" taget="_blank" href="/search/%E5%B0%8F%E7%A8%8B%E5%BA%8F/1.htm">小程序</a><a class="tag" taget="_blank" href="/search/canva%E5%8F%AF%E7%94%BB/1.htm">canva可画</a> <div>微信小程序要实现使用canvas绘制一个图,然后保存到手机相册**最终效果:**实现生成以下图片一、初始化canvas//wxml页面设置canvas标签//js页面初始化canvasdata:{ctx:'',details:'',windowW:375*3,windowH:265*3,ratio:3,showCanvas:false},onLoad(options){this.setData({</div> </li> <li><a href="/article/1835108149615489024.htm" title="Mybatis实现员工管理系统" target="_blank">Mybatis实现员工管理系统</a> <span class="text-muted">wu1113_</span> <a class="tag" taget="_blank" href="/search/mybatis/1.htm">mybatis</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/maven/1.htm">maven</a> <div>文章目录1.案例需求2.编程思路3.案例源码4.小结1.案例需求在上次做的父子模块的maven以及Ajax实现人工管理系统的基础上使用Mybatis实现员工管理系统的增删改查,具体运行效果如下:2.编程思路Mybatis框架的一般执行流程:创建MyBatis配置文件mybatis-config.xml在里面加载数据源、事务等,管理映射文件创建需要的映射文件mapper.xml,用于映射表中列和实体</div> </li> <li><a href="/article/1835103990602362880.htm" title="java ajax_Java Ajax入门" target="_blank">java ajax_Java Ajax入门</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/ajax/1.htm">ajax</a> <div>接下来整理一下Ajax相关的内容,AJAX(asynchronousjsandxml),即异步的JavaScript和xml,它的主要作用就是让页面不必等待服务器返回整个页面信息,而可以通过异步的方式给服务器发送数据和获取数据,对页面进行局部刷新,是一种提高用户体验的技术。同步和异步同步和异步的主要区别如下;(1)同步:一个响应结束后才能发送下一个请求,页面在请求期间不能做其他事情。(2)异步:不</div> </li> <li><a href="/article/1835099706594783232.htm" title="html加载界面发送ajax请求" target="_blank">html加载界面发送ajax请求</a> <span class="text-muted">足球数据分析</span> <a class="tag" taget="_blank" href="/search/html/1.htm">html</a><a class="tag" taget="_blank" href="/search/ajax/1.htm">ajax</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a> <div>html加载界面发送ajax请求makeAjaxRequest();functionmakeAjaxRequest(){varxhr=newXMLHttpRequest();//创建一个新的XMLHttpRequest对象xhr.open('GET','yourUrlPath',true);//配置请求,设置请求类型、URL和是否异步xhr.send();//发送请求}</div> </li> <li><a href="/article/1835093655841501184.htm" title="Jacoco的XML报告详解" target="_blank">Jacoco的XML报告详解</a> <span class="text-muted">CrissChan</span> <a class="tag" taget="_blank" href="/search/%E8%87%AA%E5%8A%A8%E5%8C%96%E6%B5%8B%E8%AF%95/1.htm">自动化测试</a><a class="tag" taget="_blank" href="/search/%E6%8C%81%E7%BB%AD%E4%BA%A4%E4%BB%98%E5%92%8C%E6%8C%81%E7%BB%AD%E6%B5%8B%E8%AF%95/1.htm">持续交付和持续测试</a><a class="tag" taget="_blank" href="/search/jacoco/1.htm">jacoco</a><a class="tag" taget="_blank" href="/search/%E6%B5%8B%E8%AF%95/1.htm">测试</a> <div>使用jacococli完成jacoco测试报告生成后,会看到有一个.xml结尾的文件,这个就是xml格式的覆盖率报告。除了xml还有csv、html格式的报告,本文进介绍xml报告。DTD文件在介绍jacoco的xml报告之前,我们应该先看一下对应的DTD文件的内容。(DTD的全称为DocumentTypeDefinition,是一种文件定义格式,它规定了XML文件结构为XML文件提供了语法与规则</div> </li> <li><a href="/article/66.htm" title="项目中 枚举与注解的结合使用" target="_blank">项目中 枚举与注解的结合使用</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/enum/1.htm">enum</a><a class="tag" taget="_blank" href="/search/annotation/1.htm">annotation</a> <div>前言:版本兼容,一直是迭代开发头疼的事,最近新版本加上了支持新题型,如果新创建一份问卷包含了新题型,那旧版本客户端就不支持,如果新创建的问卷不包含新题型,那么新旧客户端都支持。这里面我们通过给问卷类型枚举增加自定义注解的方式完成。顺便巩固下枚举与注解。 一、枚举 1.在创建枚举类的时候,该类已继承java.lang.Enum类,所以自定义枚举类无法继承别的类,但可以实现接口。 </div> </li> <li><a href="/article/193.htm" title="【Scala十七】Scala核心十一:下划线_的用法" target="_blank">【Scala十七】Scala核心十一:下划线_的用法</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/scala/1.htm">scala</a> <div>下划线_在Scala中广泛应用,_的基本含义是作为占位符使用。_在使用时是出问题非常多的地方,本文将不断完善_的使用场景以及所表达的含义   1. 在高阶函数中使用 scala> val list = List(-3,8,7,9) list: List[Int] = List(-3, 8, 7, 9) scala> list.filter(_ > 7) r</div> </li> <li><a href="/article/320.htm" title="web缓存基础:术语、http报头和缓存策略" target="_blank">web缓存基础:术语、http报头和缓存策略</a> <span class="text-muted">dalan_123</span> <a class="tag" taget="_blank" href="/search/Web/1.htm">Web</a> <div>对于很多人来说,去访问某一个站点,若是该站点能够提供智能化的内容缓存来提高用户体验,那么最终该站点的访问者将络绎不绝。缓存或者对之前的请求临时存储,是http协议实现中最核心的内容分发策略之一。分发路径中的组件均可以缓存内容来加速后续的请求,这是受控于对该内容所声明的缓存策略。接下来将讨web内容缓存策略的基本概念,具体包括如如何选择缓存策略以保证互联网范围内的缓存能够正确处理的您的内容,并谈论下</div> </li> <li><a href="/article/447.htm" title="crontab 问题" target="_blank">crontab 问题</a> <span class="text-muted">周凡杨</span> <a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/crontab/1.htm">crontab</a><a class="tag" taget="_blank" href="/search/unix/1.htm">unix</a> <div>  一: 0481-079   Reached   a   symbol   that   is   not   expected.   背景: */5   *   *   *   *  /usr/IBMIHS/rsync.sh  </div> </li> <li><a href="/article/574.htm" title="让tomcat支持2级域名共享session" target="_blank">让tomcat支持2级域名共享session</a> <span class="text-muted">g21121</span> <a class="tag" taget="_blank" href="/search/session/1.htm">session</a> <div>tomcat默认情况下是不支持2级域名共享session的,所有有些情况下登陆后从主域名跳转到子域名会发生链接session不相同的情况,但是只需修改几处配置就可以了。 打开tomcat下conf下context.xml文件 找到Context标签,修改为如下内容 如果你的域名是www.test.com <Context sessionCookiePath="/path&q</div> </li> <li><a href="/article/701.htm" title="web报表工具FineReport常用函数的用法总结(数学和三角函数)" target="_blank">web报表工具FineReport常用函数的用法总结(数学和三角函数)</a> <span class="text-muted">老A不折腾</span> <a class="tag" taget="_blank" href="/search/Web/1.htm">Web</a><a class="tag" taget="_blank" href="/search/finereport/1.htm">finereport</a><a class="tag" taget="_blank" href="/search/%E6%80%BB%E7%BB%93/1.htm">总结</a> <div>  ABS ABS(number):返回指定数字的绝对值。绝对值是指没有正负符号的数值。 Number:需要求出绝对值的任意实数。 示例: ABS(-1.5)等于1.5。 ABS(0)等于0。 ABS(2.5)等于2.5。   ACOS ACOS(number):返回指定数值的反余弦值。反余弦值为一个角度,返回角度以弧度形式表示。 Number:需要返回角</div> </li> <li><a href="/article/828.htm" title="linux 启动java进程 sh文件" target="_blank">linux 启动java进程 sh文件</a> <span class="text-muted">墙头上一根草</span> <a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/shell/1.htm">shell</a><a class="tag" taget="_blank" href="/search/jar/1.htm">jar</a> <div>#!/bin/bash #初始化服务器的进程PId变量 user_pid=0; robot_pid=0; loadlort_pid=0; gateway_pid=0; ######### #检查相关服务器是否启动成功 #说明: #使用JDK自带的JPS命令及grep命令组合,准确查找pid #jps 加 l 参数,表示显示java的完整包路径 #使用awk,分割出pid </div> </li> <li><a href="/article/955.htm" title="我的spring学习笔记5-如何使用ApplicationContext替换BeanFactory" target="_blank">我的spring学习笔记5-如何使用ApplicationContext替换BeanFactory</a> <span class="text-muted">aijuans</span> <a class="tag" taget="_blank" href="/search/Spring+3+%E7%B3%BB%E5%88%97/1.htm">Spring 3 系列</a> <div>如何使用ApplicationContext替换BeanFactory? package onlyfun.caterpillar.device; import org.springframework.beans.factory.BeanFactory; import org.springframework.beans.factory.xml.XmlBeanFactory; import</div> </li> <li><a href="/article/1082.htm" title="Linux 内存使用方法详细解析" target="_blank">Linux 内存使用方法详细解析</a> <span class="text-muted">annan211</span> <a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/%E5%86%85%E5%AD%98/1.htm">内存</a><a class="tag" taget="_blank" href="/search/Linux%E5%86%85%E5%AD%98%E8%A7%A3%E6%9E%90/1.htm">Linux内存解析</a> <div>来源 http://blog.jobbole.com/45748/ 我是一名程序员,那么我在这里以一个程序员的角度来讲解Linux内存的使用。 一提到内存管理,我们头脑中闪出的两个概念,就是虚拟内存,与物理内存。这两个概念主要来自于linux内核的支持。 Linux在内存管理上份为两级,一级是线性区,类似于00c73000-00c88000,对应于虚拟内存,它实际上不占用</div> </li> <li><a href="/article/1209.htm" title="数据库的单表查询常用命令及使用方法(-)" target="_blank">数据库的单表查询常用命令及使用方法(-)</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/%E5%87%BD%E6%95%B0/1.htm">函数</a><a class="tag" taget="_blank" href="/search/%E5%8D%95%E8%A1%A8%E6%9F%A5%E8%AF%A2/1.htm">单表查询</a> <div>    创建数据库;       --建表 create table bloguser(username varchar2(20),userage number(10),usersex char(2));       创建bloguser表,里面有三个字段     &nbs</div> </li> <li><a href="/article/1336.htm" title="多线程基础知识" target="_blank">多线程基础知识</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%A4%9A%E7%BA%BF%E7%A8%8B/1.htm">多线程</a><a class="tag" taget="_blank" href="/search/thread/1.htm">thread</a><a class="tag" taget="_blank" href="/search/java%E5%A4%9A%E7%BA%BF%E7%A8%8B/1.htm">java多线程</a> <div>一.进程和线程 进程就是一个在内存中独立运行的程序,有自己的地址空间。如正在运行的写字板程序就是一个进程。 “多任务”:指操作系统能同时运行多个进程(程序)。如WINDOWS系统可以同时运行写字板程序、画图程序、WORD、Eclipse等。 线程:是进程内部单一的一个顺序控制流。 线程和进程 a.       每个进程都有独立的</div> </li> <li><a href="/article/1463.htm" title="fastjson简单使用实例" target="_blank">fastjson简单使用实例</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/fastjson/1.htm">fastjson</a> <div>一.简介         阿里巴巴fastjson是一个Java语言编写的高性能功能完善的JSON库。它采用一种“假定有序快速匹配”的算法,把JSON Parse的性能提升到极致,是目前Java语言中最快的JSON库;包括“序列化”和“反序列化”两部分,它具备如下特征:     </div> </li> <li><a href="/article/1590.htm" title="【RPC框架Burlap】Spring集成Burlap" target="_blank">【RPC框架Burlap】Spring集成Burlap</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a> <div>Burlap和Hessian同属于codehaus的RPC调用框架,但是Burlap已经几年不更新,所以Spring在4.0里已经将Burlap的支持置为Deprecated,所以在选择RPC框架时,不应该考虑Burlap了。 这篇文章还是记录下Burlap的用法吧,主要是复制粘贴了Hessian与Spring集成一文,【RPC框架Hessian四】Hessian与Spring集成  </div> </li> <li><a href="/article/1717.htm" title="【Mahout一】基于Mahout 命令参数含义" target="_blank">【Mahout一】基于Mahout 命令参数含义</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/Mahout/1.htm">Mahout</a> <div>1. mahout seqdirectory   $ mahout seqdirectory --input (-i) input Path to job input directory(原始文本文件). --output (-o) output The directory pathna</div> </li> <li><a href="/article/1844.htm" title="linux使用flock文件锁解决脚本重复执行问题" target="_blank">linux使用flock文件锁解决脚本重复执行问题</a> <span class="text-muted">ronin47</span> <a class="tag" taget="_blank" href="/search/linux+lock%E3%80%80%E9%87%8D%E5%A4%8D%E6%89%A7%E8%A1%8C/1.htm">linux lock 重复执行</a> <div>linux的crontab命令,可以定时执行操作,最小周期是每分钟执行一次。关于crontab实现每秒执行可参考我之前的文章《linux crontab 实现每秒执行》现在有个问题,如果设定了任务每分钟执行一次,但有可能一分钟内任务并没有执行完成,这时系统会再执行任务。导致两个相同的任务在执行。 例如: <? //  test .php </div> </li> <li><a href="/article/1971.htm" title="java-74-数组中有一个数字出现的次数超过了数组长度的一半,找出这个数字" target="_blank">java-74-数组中有一个数字出现的次数超过了数组长度的一半,找出这个数字</a> <span class="text-muted">bylijinnan</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div> public class OcuppyMoreThanHalf { /** * Q74 数组中有一个数字出现的次数超过了数组长度的一半,找出这个数字 * two solutions: * 1.O(n) * see <beauty of coding>--每次删除两个不同的数字,不改变数组的特性 * 2.O(nlogn) * 排序。中间</div> </li> <li><a href="/article/2098.htm" title="linux 系统相关命令" target="_blank">linux 系统相关命令</a> <span class="text-muted">candiio</span> <a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a> <div>系统参数 cat /proc/cpuinfo  cpu相关参数 cat /proc/meminfo 内存相关参数 cat /proc/loadavg 负载情况 性能参数 1)top M:按内存使用排序 P:按CPU占用排序 1:显示各CPU的使用情况 k:kill进程 o:更多排序规则 回车:刷新数据 2)ulimit ulimit -a:显示本用户的系统限制参</div> </li> <li><a href="/article/2225.htm" title="[经营与资产]保持独立性和稳定性对于软件开发的重要意义" target="_blank">[经营与资产]保持独立性和稳定性对于软件开发的重要意义</a> <span class="text-muted">comsci</span> <a class="tag" taget="_blank" href="/search/%E8%BD%AF%E4%BB%B6%E5%BC%80%E5%8F%91/1.htm">软件开发</a> <div>      一个软件的架构从诞生到成熟,中间要经过很多次的修正和改造       如果在这个过程中,外界的其它行业的资本不断的介入这种软件架构的升级过程中           那么软件开发者原有的设计思想和开发路线</div> </li> <li><a href="/article/2352.htm" title="在CentOS5.5上编译OpenJDK6" target="_blank">在CentOS5.5上编译OpenJDK6</a> <span class="text-muted">Cwind</span> <a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/OpenJDK/1.htm">OpenJDK</a> <div>几番周折终于在自己的CentOS5.5上编译成功了OpenJDK6,将编译过程和遇到的问题作一简要记录,备查。 0. OpenJDK介绍 OpenJDK是Sun(现Oracle)公司发布的基于GPL许可的Java平台的实现。其优点: 1、它的核心代码与同时期Sun(-> Oracle)的产品版基本上是一样的,血统纯正,不用担心性能问题,也基本上没什么兼容性问题;(代码上最主要的差异是</div> </li> <li><a href="/article/2479.htm" title="java乱码问题" target="_blank">java乱码问题</a> <span class="text-muted">dashuaifu</span> <a class="tag" taget="_blank" href="/search/java%E4%B9%B1%E7%A0%81%E9%97%AE%E9%A2%98/1.htm">java乱码问题</a><a class="tag" taget="_blank" href="/search/js%E4%B8%AD%E6%96%87%E4%B9%B1%E7%A0%81/1.htm">js中文乱码</a> <div>swfupload上传文件参数值为中文传递到后台接收中文乱码     在js中用setPostParams({"tag" : encodeURI( document.getElementByIdx_x("filetag").value,"utf-8")}); 然后在servlet中String t</div> </li> <li><a href="/article/2606.htm" title="cygwin很多命令显示command not found的解决办法" target="_blank">cygwin很多命令显示command not found的解决办法</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/cygwin/1.htm">cygwin</a> <div>cygwin很多命令显示command not found的解决办法   修改cygwin.BAT文件如下 @echo off D: set CYGWIN=tty notitle glob set PATH=%PATH%;d:\cygwin\bin;d:\cygwin\sbin;d:\cygwin\usr\bin;d:\cygwin\usr\sbin;d:\cygwin\us</div> </li> <li><a href="/article/2733.htm" title="[介绍]从 Yii 1.1 升级" target="_blank">[介绍]从 Yii 1.1 升级</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/PHP/1.htm">PHP</a><a class="tag" taget="_blank" href="/search/yii2/1.htm">yii2</a> <div>2.0 版框架是完全重写的,在 1.1 和 2.0 两个版本之间存在相当多差异。因此从 1.1 版升级并不像小版本间的跨越那么简单,通过本指南你将会了解两个版本间主要的不同之处。 如果你之前没有用过 Yii 1.1,可以跳过本章,直接从"入门篇"开始读起。 请注意,Yii 2.0 引入了很多本章并没有涉及到的新功能。强烈建议你通读整部权威指南来了解所有新特性。这样有可能会发</div> </li> <li><a href="/article/2860.htm" title="Linux SSH免登录配置总结" target="_blank">Linux SSH免登录配置总结</a> <span class="text-muted">eksliang</span> <a class="tag" taget="_blank" href="/search/ssh-keygen/1.htm">ssh-keygen</a><a class="tag" taget="_blank" href="/search/Linux+SSH%E5%85%8D%E7%99%BB%E5%BD%95%E8%AE%A4%E8%AF%81/1.htm">Linux SSH免登录认证</a><a class="tag" taget="_blank" href="/search/Linux+SSH%E4%BA%92%E4%BF%A1/1.htm">Linux SSH互信</a> <div>转载请出自出处:http://eksliang.iteye.com/blog/2187265 一、原理      我们使用ssh-keygen在ServerA上生成私钥跟公钥,将生成的公钥拷贝到远程机器ServerB上后,就可以使用ssh命令无需密码登录到另外一台机器ServerB上。      生成公钥与私钥有两种加密方式,第一种是</div> </li> <li><a href="/article/2987.htm" title="手势滑动销毁Activity" target="_blank">手势滑动销毁Activity</a> <span class="text-muted">gundumw100</span> <a class="tag" taget="_blank" href="/search/android/1.htm">android</a> <div>老是效仿ios,做android的真悲催! 有需求:需要手势滑动销毁一个Activity 怎么办尼?自己写? 不用~,网上先问一下百度。 结果: http://blog.csdn.net/xiaanming/article/details/20934541 首先将你需要的Activity继承SwipeBackActivity,它会在你的布局根目录新增一层SwipeBackLay</div> </li> <li><a href="/article/3114.htm" title="JavaScript变换表格边框颜色" target="_blank">JavaScript变换表格边框颜色</a> <span class="text-muted">ini</span> <a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/html/1.htm">html</a><a class="tag" taget="_blank" href="/search/Web/1.htm">Web</a><a class="tag" taget="_blank" href="/search/html5/1.htm">html5</a><a class="tag" taget="_blank" href="/search/css/1.htm">css</a> <div>效果查看:http://hovertree.com/texiao/js/2.htm代码如下,保存到HTML文件也可以查看效果: <html> <head> <meta charset="utf-8"> <title>表格边框变换颜色代码-何问起</title> </head> <body&</div> </li> <li><a href="/article/3241.htm" title="Kafka Rest : Confluent" target="_blank">Kafka Rest : Confluent</a> <span class="text-muted">kane_xie</span> <a class="tag" taget="_blank" href="/search/kafka/1.htm">kafka</a><a class="tag" taget="_blank" href="/search/REST/1.htm">REST</a><a class="tag" taget="_blank" href="/search/confluent/1.htm">confluent</a> <div>最近拿到一个kafka rest的需求,但kafka暂时还没有提供rest api(应该是有在开发中,毕竟rest这么火),上网搜了一下,找到一个Confluent Platform,本文简单介绍一下安装。 这里插一句,给大家推荐一个九尾搜索,原名叫谷粉SOSO,不想fanqiang谷歌的可以用这个。以前在外企用谷歌用习惯了,出来之后用度娘搜技术问题,那匹配度简直感人。 环境声明:Ubu</div> </li> <li><a href="/article/3368.htm" title="Calender不是单例" target="_blank">Calender不是单例</a> <span class="text-muted">men4661273</span> <a class="tag" taget="_blank" href="/search/%E5%8D%95%E4%BE%8B/1.htm">单例</a><a class="tag" taget="_blank" href="/search/Calender/1.htm">Calender</a> <div>         在我们使用Calender的时候,使用过Calendar.getInstance()来获取一个日期类的对象,这种方式跟单例的获取方式一样,那么它到底是不是单例呢,如果是单例的话,一个对象修改内容之后,另外一个线程中的数据不久乱套了吗?从试验以及源码中可以得出,Calendar不是单例。 测试: Calendar c1 = </div> </li> <li><a href="/article/3495.htm" title="线程内存和主内存之间联系" target="_blank">线程内存和主内存之间联系</a> <span class="text-muted">qifeifei</span> <a class="tag" taget="_blank" href="/search/java+thread/1.htm">java thread</a> <div>1, java多线程共享主内存中变量的时候,一共会经过几个阶段,    lock:将主内存中的变量锁定,为一个线程所独占。   unclock:将lock加的锁定解除,此时其它的线程可以有机会访问此变量。   read:将主内存中的变量值读到工作内存当中。   load:将read读取的值保存到工作内存中的变量副本中。   </div> </li> <li><a href="/article/3622.htm" title="schedule和scheduleAtFixedRate" target="_blank">schedule和scheduleAtFixedRate</a> <span class="text-muted">tangqi609567707</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/timer/1.htm">timer</a><a class="tag" taget="_blank" href="/search/schedule/1.htm">schedule</a> <div>原文地址:http://blog.csdn.net/weidan1121/article/details/527307 import java.util.Timer;import java.util.TimerTask;import java.util.Date; /** * @author vincent */public class TimerTest {  </div> </li> <li><a href="/article/3749.htm" title="erlang 部署" target="_blank">erlang 部署</a> <span class="text-muted">wudixiaotie</span> <a class="tag" taget="_blank" href="/search/erlang/1.htm">erlang</a> <div>1.如果在启动节点的时候报这个错 : {"init terminating in do_boot",{'cannot load',elf_format,get_files}} 则需要在reltool.config中加入 {app, hipe, [{incl_cond, exclude}]},     2.当generate时,遇到: ERROR</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>