7-25<X9>kpg.xml XML 处理

TableOfContents

概览

  1. Para 1:下面两章是关于 Python 中 XML 处理的。如果你已经知道一个 XML 文档的样子,……BR (./) 如果你已经对 XML 文档有了一个大概的了解

  2. Para 3:Being a philosophy major is not required, although if you have ever had the misfortune of being subjected to the writings of Immanuel Kant, you will appreciate the example program a lot more than if you majored in something useful, like computer science. (!) 又一次没有翻译BR (./) 如果你在大学里主修哲学(而不是像计算机科学这样的实用专业),并且曾不幸地被伊曼努尔·康德的著作折磨地够呛,那么你会非常欣赏本章的样例程序。(这当然不意味着你必须修过哲学。)

  3. 例9.3, 标题:Sample output of kgp.py (./) kgp.py 的样例输出

  4. 例9.3下, Para 1, Line -1:但所有内容都 {X} 符合康德的风格。

  5. 例9.4上The interesting thing about this program is that there is nothing Kant-specific about it. 关于这个程序的有趣之处在于没有一点内容是属于康德的。BR (./) 有趣之处在于,这个程序中没有一点内容是属于康德的。

  1. 例9.5, (1):这个语法你之前没有见过。它看上去很像我们所知并且喜欢的 from module import,但是……BR (./) 这个语法你之前没有见过。它看上去很像我们熟知的 from module import,但是……

  2. 例9.6下Python 认为它的意思是:“在 xml 目录中查找 dom 目录,然后在中查找 minidom 模块,……”BR (!) 原文即为斜体BR (./) 在 xml 目录中查找 dom 目录,然后在 这个目录 中查找 minidom 模块

  3. 例9.7, (1):……为了能够引用 minidom 模块中的类(比如 Element),你必须在它们的类名前面加上模块名。BR (./) 引用 minidom 模块中的类(比如 Element),你必须在它们的类名前面加上模块名。

  4. 例9.7, (3)Here you are importing the dom package (a nested package of xml) as a module in and of itself.BR 这里你正在导入 dom 包(xml 的一个嵌套包),并将其作为自己或者内部的 {X} 一个模块。BR (!) in and of 只是对itself 的强调BR

XML 解析

  1. 例9.8, (1):正如在上一 {X} 节看到的,……

  2. 例9.8, (2):它只是我本地磁盘上一个 XML 文档的文件名。(为了继续执行, {X} 你需要将路径改为指向下载的例子所在的目录。)

  3. 例9.12, 标题:Drilling down all the way to text (./) 把文本挖出来

  4. 例9.12, (2)The ref element has its own set of child nodes, one for the carriage return, a separate one for the spaces, one for the p element, and so forth.BR ref元素有它自己的子节点集合,一个表示硬回车,一个独立表示空格的,一个用于p元素的,诸如此类。BR (./) ref 元素有它自己的子节点集合,一个表示硬回车,一个表示空格,一个表示 p 元素,诸如此类。

  5. 例9.12, (3):你甚至可以在这里使用 toxml 方法, {i} 尽管它深深嵌套在文档中。

  6. 例9.12, (3):p 元素只有一个子节点(在这个例子中,你无法知道这一点,……)BR (./) p 元素只有一个子节点(在这个例子中无法看出……)

Unicode

  1. 历史注解, Para 1:……在系统之间进行文档交流是困难的,因为对于一台计算机来说,没有方法可以识别出文档的作者使用了哪种编码模式;计算机看到的只是数字,并且这些数字可以表示不同的东西。接着考虑到试图将这些 {i} (采用不同编码的)文档存放到同一个地方(比如在同一个数据库表中);……比较有代表性的是使用转义符来进行模式切换; <!> ,我们处于俄语 koi8-r 模式,所以字符 241 表示这个;,现在我们处于 Mac 希腊语模式,…… (./) BR (!) 原文太长,不能全部列出。

  2. 历史注解, Para 3, Line -1:Unicode使用同7位 ASCII 码一样的字符表示0到127同ISO-8859-1一样的字符表示128到255,接着使用剩余的数字,256到65535,扩展到表示其它语言的字符。BR (./) Unicode 在 0 到 127 上使用了同 7 位 ASCII 码一样的字符表在 128 到 255上同 ISO-8859-1 一样,接着使用剩余的数字,256 到 65535,扩展到表示其它语言的字符。

  3. 历史注解, Para 4:……或将数据打印输出到一个非unicode识别终端或打印机。BR (./) 或将数据打印输出到一个不识别 unicode 的终端或打印机。

  4. 例9.13上, Para -1:从2.0版本开始,Python 在整个语言的基础上已经支持unicode。BR (./) 从 2.0 开始,Python 整个语言都已经支持 unicode。

  5. 例9.14, (2):还记得我说过 print 函数会尝试将unicode字符串转换为 ASCII,这样就可以打印它了吗?BR (./) 还记得我说过 print 函数会尝试将 unicode 字符串转换为 ASCII 从而打印它吗?

  6. 例9.14, (3):……我们使用 latin-1(也就是大家知道的 iso-8859-1)BR (./) 我们使用 latin-1(也叫 iso-8859-1)

  7. 例9.15, (2):Python 会在任何需要自动将unicode字符串强制转换为正规字符串的地方,使用这个编码模式。BR (./) Python 会在任何需要将 unicode 字符串自动转换为正规字符串的地方,使用这个编码模式。

  8. 例9.15, (1)The default encoding can only be changed during Python startup; you can't change it later. (Due to some wacky programming tricks that I won't get into right now, you can't even call sys.setdefaultencoding after Python has started up.BR 默认的编码只会在 Python 启动的时候改变;之后就不能改变了。(由于一些古怪的编程技巧,我没有马上深入,你甚至不能在 Python 启动之后调用sys.setdefaultencoding函数。……)BR (./) 由于一些我们现在不会仔细研究的古怪的编程技巧,你甚至不能在 Python 启动之后调用 sys.setdefaultencoding 函数。

  9. 例9.18上:现在,想想 XML 中的编码应该是怎样的呢?不错的是 {X} ,每一个 XML 文档都有指定的编码。

  10. 例9.19, (3):打印title是不可能的,因为这个unicode字符串包哈了非 ASCII 字符,……BR (./) 直接打印 title 是不可能的,因为这个 unicode 字符串包含了非 ASCII 字符,……

  11. 例9.13, (4)你能够,但是,显式将它转换为koi8-r,……BR (./) 但是,你能够显式将它转换为 koi8-r,……

搜索元素

访问元素属性

Segue