昨天把我的笔记本重新安装了一下,用的是番茄花园的ISO自动安装的,安装完成后,注册信息是番茄花园,就想改成自己的名字,于是,从网上搜索到了一个工具,OEMDIY,挺不错的,你可以修改你的注册信息,而且也可以添加OEM信息,比如我的本子是hp的,就可以加上HP的图标,挺方便的一个东西。

需要下载的朋友,请到我的网络硬盘下载。谢谢。
访问密码:0000



这是微软MSDN提供的16节课的C#视频教程,非常适合入门学习。通过创建一个具体的解决方案,了解C#,学习C#,非常好。

大小就是180多M,我已经放在MOFILE了,大家可以下载学习看看。

地址如下:

http://www1.51ok.com/down.do?17F2F2480F6B8741793E40506F89C54E

这次不限制时间了,大家可以尽情的下载了。呵呵。

请查阅该文章:http://www.arvan.net.ru/article.asp?id=273


An axis defines a node-set relative to the current node.
轴定义了相对于当前节的节集

The XML Example Document

XML举例文档

We will use the following XML document in the examples below.
我么将使用该XML文档进行下面的举例说明


Harry Potter
29.99


Learning XML
39.95


XPath Axes

XPath轴

轴名结果
ancestorSelects all ancestors (parent, grandparent, etc.) of the current node[选择了当前节的所有祖(父,祖父,等等)]
ancestor-or-selfSelects all ancestors (parent, grandparent, etc.) of the current node and the current node itself[选择当前节的所有祖并且还有当前节自己]
attributeSelects all attributes of the current node[选择所有当前节的属性]
childSelects all children of the current node[选择所有当前节的子]
descendantSelects all descendants (children, grandchildren, etc.) of the current node[选择所有当前节的孙(子,孙子,等等)]
descendant-or-selfSelects all descendants (children, grandchildren, etc.) of the current node and the current node itself[选择当前节的所有孙以及它本身]
followingSelects everything in the document after the closing tag of the current node[选择所有在关闭当前节标签后的所有内容]
following-siblingSelects all siblings after the current node[选择所有当前节后的兄]
namespaceSelects all namespace nodes of the current node[选择所有当前节的命名空间]
parentSelects the parent of the current node[选择当前节的父]
precedingSelects everything in the document that is before the start tag of the current node[选择当前节之前的所有内容]
preceding-siblingSelects all siblings before the current node[选择所有当前节之前的兄]
selfSelects the current node[选择当前节]
- - - - - -

Location Path Expression

路径表达试定位

A location path can be absolute or relative.
定位路径可以是绝对的也可以是相对的

An absolute location path starts with a slash ( / ) and a relative location path does not. In both cases the location path consists of one or more steps, each separated by a slash:
绝对定位的路径由(/)开始,而相对定位就不这样。定位的路径由一个或多个步骤所组成,每部分由(/)相分隔:

An absolute location path:

/step/step/…

A relative location path:

step/step/…

Each step is evaluated against the nodes in the current node-set.
在当前的节集中每步的赋值是逆向的

A step consists of:

  • an axis (defines the tree-relationship between the selected nodes and the current node)
  • a node-test (identifies a node within an axis)[在轴中鉴定节]
  • zero or more predicates (to further refine the selected node-set)[0个或多个谓语可以来更好的选择节]

The syntax for a location step is:
定位的语法

axisname::nodetest[predicate]

Examples

实例

Example结果
child::bookSelects all book nodes that are children of the current node[选择当前节点下所有为book的子节点]
attribute::langSelects the lang attribute of the current node[选择当前节点下所有属性为lang的内容]
child::Selects all children of the current node[选择当前节下所有的子节]
attribute::Selects all attributes of the current node[选择当前节所有的属性]
child::text()Selects all text child nodes of the current node[选择当前节点所有子节点的文字]
child::node()Selects all child nodes of the current node[选择所有当前节点的子节点]
descendant::bookSelects all book descendants of the current node[选择当前节点所有为book的孙节点]
ancestor::bookSelects all book ancestors of the current node[选择所有当前祖节点为book的节点]
ancestor-or-self::bookSelects all book ancestors of the current node – and the current as well if it is a book node[当前节点和其祖节点为book的节点]
child::*/child::priceSelects all price grandchildren of the current node[当前节点所有含price的孙子节点]
An XPath expression returns either anode-set, a string, a Boolean, or a number.


XPath Operators

Below is a list of the operators that can be used in XPath expressions:

OperatorDescriptionExampleReturn value|Computes two node-sets//book | //cdReturns a node-set with all book and cd elements+Addition6 + 410–Subtraction6 – 42*Multiplication6 * 4

24divDivision8 div 42=Equalprice=9.80true if price is 9.80
false if price is 9.90!=Not equalprice!=9.80true if price is 9.90
false if price is 9.80<Less thanprice<9.80true if price is 9.00
false if price is 9.80<=Less than or equal toprice<=9.80true if price is 9.00
false if price is 9.90>Greater thanprice>9.80true if price is 9.90
false if price is 9.80>=Greater than or equal toprice>=9.80true if price is 9.90
false if price is 9.70ororprice=9.80 or price=9.70true if price is 9.80
false if price is 9.50andandprice>9.00 and price<9.90true if price is 9.80
false if price is 8.50modModulus (division remainder)5 mod 21Let's try to learn some basic XPath syntax by looking at some examples.
让我们来尝试通过观察一些实例来学习基础的XPath语法


The XML Example Document

We will use the following XML document in the examples below.
我们将使用下面这个XML文档来进行实例

"books.xml":


Everyday Italian
Giada De Laurentiis
2005
30.00


Harry Potter
J K. Rowling
2005
29.99


XQuery Kick Start
James McGovern
Per Bothner
Kurt Cagle
James Linn
Vaidyanathan Nagarajan
2003
49.99


Learning XML
Erik T. Ray
2003
39.95

View the "books.xml" file in your browser.


Selecting Nodes

选择节点

We will use the Microsoft XMLDOM object to load the XML document and the selectNodes() function to select nodes from the XML document:
我们使用了XMLDOM对象来加载XML文档并用selectNode()函数来进行XML文档上节点的选择:

set xmlDoc=CreateObject("Microsoft.XMLDOM")
xmlDoc.async="false"
xmlDoc.load("books.xml")

xmlDoc.selectNodes(path expression)


Select all book Nodes

选择所有book节点

The following example selects all the book nodes under the bookstore element:
下面这个实例就会选择所有bookstore元素以下的book节点:

xmlDoc.selectNodes("/bookstore/book")

如果你有IE5以上的版本你可以自己来做一下.


Select the First book Node

选择第一个book节点

The following example selects only the first book node under the bookstore element:

xmlDoc.selectNodes("/bookstore/book[0]")

If you have IE 5 or higher you can try it yourself.

Note: IE 5 and 6 has implemented that [0] should be the first node, but according to the W3C standard it should have been [1]!!


Select the prices

选择prices

The following example selects the text from all the price nodes:

xmlDoc.selectNodes("/bookstore/book/price/text()")

If you have IE 5 or higher you can try it yourself.


Selecting price Nodes with Price>35

选择price大于35的price节点

The following example selects all the price nodes with a price higher than 35:

xmlDoc.selectNodes("/bookstore/book
[price>35]/price")

If you have IE 5 or higher you can try it yourself.


Selecting title Nodes with Price>35

选择Price大于35的title节点

The following example selects all the title nodes with a price higher than 35:

xmlDoc.selectNodes("/bookstore/book[price>35]/title")

If you have IE 5 or higher you can try it yourself.


XPath uses path expressions to select nodes or node-sets in an XML document. The node is selected by following a path or steps.
XPath使用路径表达式来选择XML文档的节或是节集。顺着路径或步骤来选择节。

XPath uses path expressions to select nodes or node-sets in an XML document. The node is selected by following a path or steps.
XPath使用路径表达式来选择XML文档的节或是节集。顺着路径或步骤来选择节。

- - - - - -

## The XML Example Document
XML实例文档

We will use the following XML document in the examples below.
举例中我们将使用下面的XML文档

>

>

> Harry Potter 29.99 > Learning XML 39.95 >

- - - - - -

## Selecting Nodes
选择节

XPath uses path expressions to select nodes in an XML document. The node is selected by following a path or steps. The most useful path expressions are listed below:
一些非常有用的路径表达式:

**表达式****描述**
*nodename*Selects all child nodes of the node[选择所有目前节的子节]
/Selects from the root node[从根节进行选择]
//Selects nodes in the document from the current node that match the selection no matter where they are [选择文档中相吻合的节而不管其在文档的何处]
.Selects the current node[选择当前节]
..Selects the parent of the current node[当前节的父节]
@Selects attributes[选择属性]

### Examples
实例

In the table below we have listed some path expressions and the result of the expressions:
下面我们所列举的表格有路径表达式以及其结果:

**路径表达式****结果**
bookstoreSelects all the child nodes of the bookstore element[选择所有bookstore元素的子节]
/bookstoreSelects the root element bookstore **Note:** If the path starts with a slash ( / ) it always represents an absolute path to an element!

[选择了bookstore的根元素。注意:如果路径的开始为(/)那此路径一定是到该元素的绝对路径]
bookstore/bookSelects all book elements that are children of bookstore[选择了所有在bookstore的子元素book元素所包含的所有元素(其实就为bookstore里book元素所包含的元素)]
//bookSelects all book elements no matter where they are in the document[选择所有为book元素的内容而不管book元素处于何处(有不同的父也没关系)]
bookstore//bookSelects all book elements that are descendant of the bookstore element, no matter where they are under the bookstore element[在bookstore元素内所有含有book元素的元素内容(只要book元素的祖元素为bookstore元素那都符合条件)]
//@langSelects all attributes that are named lang[选择所有属性名为lang的属性]

- - - - - -

## Predicates
谓语

Predicates are used to find a specific node or a node that contains a specific value.
谓语用来指定明确的节所含有的特殊的值

Predicates are always embedded in square brackets.
谓语被嵌入在中括号

### Examples
举例

In the table below we have listed some path expressions with predicates and the result of the expressions:
下面的表格列举了一些使用了谓语的路径表达式以及其产生的结果:

**路径表达式****结果**
/bookstore/book[1]Selects the first book element that is the child of the bookstore element[选择了bookstore里的第一个book元素]
/bookstore/book[last()]Selects the last book element that is the child of the bookstore element[选择bookstore里最后一个book元素]
/bookstore/book[last()-1]Selects the last but one book element that is the child of the bookstore element[bookstore中倒数第二个book元素]
/bookstore/book[position()<3]Selects the first two book elements that are children of the bookstore element[在bookstore中前两个book元素]
//title[@lang]Selects all the title elements that have an attribute named lang[选择所有含有lang属性的title元素]
//title[@lang='eng']Selects all the title elements that have an attribute named lang with a value of 'eng'[选择所有含有lang属性并且值为eng的title元素]
/bookstore/book[price>35.00]Selects all the book elements of the bookstore element that have a price element with a value greater than 35.00[选择所有bookstore中book元素里price元素内容大于35.00的book元素]
/bookstore/book[price>35.00]/titleSelects all the title elements of the book elements of the bookstore element that have a price element with a value gr
eater than 35.00[选择bookstore中book的子元素title,并且其兄弟元素price的内容得大于35.00]

- - - - - -

## Selecting Unknown Nodes
选择未知的节

XPath wildcards can be used to select unknown XML elements.
XPath的通配符可以用来选择未知的XML元素

**通配符****描述**
*Matches any element node[相吻合的所有元素节]
@*Matches any attribute node[相吻合的所有属性节]
node()Matches any node of any kind[吻合任何类型的节]

### Examples实例

In the table below we have listed some path expressions and the result of the expressions:
下面的表格我们将列举一些路径表达式以及它们的结果

**路径表达式****结果**
/bookstore/*Selects all the child nodes of the bookstore element[选择所有bookstore的子节]
//*Selects all elements in the document[选择所有文档中的元素]
//title[@*]Selects all title elements which have any attribute[选择元素为title并且其含有属性]

- - - - - -

## Selecting Several Paths
选择数个路径

By using the | operator in an XPath expression you can select several paths.
通过在XPath中使用 | 你可以选择数个路径

### Examples
实例

In the table below we have listed some path expressions and the result of the expressions:
下面的表格我们会列举一些路径表达式以及其结果:

**路径表达****结果**
//book/title | //book/priceSelects all the title AND price elements of all book elements[选择所有book里title和price元素]
//title | //priceSelects all the title AND price elements in the document[选择所有title和price元素]
/bookstore/book/title | //priceSelects all the title elements of the book element of the bookstore element AND all the price elements in the document[选择所有book里的title元素和所有price元素]