1117 lines
100 KiB
HTML
1117 lines
100 KiB
HTML
|
||
<!DOCTYPE html>
|
||
|
||
<html xmlns="http://www.w3.org/1999/xhtml" lang="zh_CN">
|
||
<head>
|
||
<meta charset="utf-8" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
|
||
|
||
<title>xml.dom --- 文档对象模型 API — Python 3.8.20 文档</title><meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||
|
||
<link rel="stylesheet" href="../_static/pydoctheme.css" type="text/css" />
|
||
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
|
||
|
||
<script id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
|
||
<script src="../_static/jquery.js"></script>
|
||
<script src="../_static/underscore.js"></script>
|
||
<script src="../_static/doctools.js"></script>
|
||
<script src="../_static/language_data.js"></script>
|
||
<script src="../_static/translations.js"></script>
|
||
|
||
<script src="../_static/sidebar.js"></script>
|
||
|
||
<link rel="search" type="application/opensearchdescription+xml"
|
||
title="在 Python 3.8.20 文档 中搜索"
|
||
href="../_static/opensearch.xml"/>
|
||
<link rel="author" title="关于这些文档" href="../about.html" />
|
||
<link rel="index" title="索引" href="../genindex.html" />
|
||
<link rel="search" title="搜索" href="../search.html" />
|
||
<link rel="copyright" title="版权所有" href="../copyright.html" />
|
||
<link rel="next" title="xml.dom.minidom --- 最小化的 DOM 实现" href="xml.dom.minidom.html" />
|
||
<link rel="prev" title="xml.etree.ElementTree --- ElementTree XML API" href="xml.etree.elementtree.html" />
|
||
<link rel="canonical" href="https://docs.python.org/3/library/xml.dom.html" />
|
||
|
||
|
||
|
||
|
||
|
||
<style>
|
||
@media only screen {
|
||
table.full-width-table {
|
||
width: 100%;
|
||
}
|
||
}
|
||
</style>
|
||
<link rel="shortcut icon" type="image/png" href="../_static/py.svg" />
|
||
<script type="text/javascript" src="../_static/copybutton.js"></script>
|
||
<script type="text/javascript" src="../_static/menu.js"></script>
|
||
|
||
</head>
|
||
<body>
|
||
<div class="mobile-nav">
|
||
<input type="checkbox" id="menuToggler" class="toggler__input" aria-controls="navigation"
|
||
aria-pressed="false" aria-expanded="false" role="button" aria-label="Menu" />
|
||
<label for="menuToggler" class="toggler__label">
|
||
<span></span>
|
||
</label>
|
||
<nav class="nav-content" role="navigation">
|
||
<a href="https://www.python.org/" class="nav-logo">
|
||
<img src="../_static/py.svg" alt="Logo"/>
|
||
</a>
|
||
<div class="version_switcher_placeholder"></div>
|
||
<form role="search" class="search" action="../search.html" method="get">
|
||
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" class="search-icon">
|
||
<path fill-rule="nonzero"
|
||
d="M15.5 14h-.79l-.28-.27a6.5 6.5 0 001.48-5.34c-.47-2.78-2.79-5-5.59-5.34a6.505 6.505 0 00-7.27 7.27c.34 2.8 2.56 5.12 5.34 5.59a6.5 6.5 0 005.34-1.48l.27.28v.79l4.25 4.25c.41.41 1.08.41 1.49 0 .41-.41.41-1.08 0-1.49L15.5 14zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z" fill="#444"></path>
|
||
</svg>
|
||
<input type="text" name="q" aria-label="快速搜索"/>
|
||
<input type="submit" value="转向"/>
|
||
</form>
|
||
</nav>
|
||
<div class="menu-wrapper">
|
||
<nav class="menu" role="navigation" aria-label="main navigation">
|
||
<div class="language_switcher_placeholder"></div>
|
||
<h3><a href="../contents.html">目录</a></h3>
|
||
<ul>
|
||
<li><a class="reference internal" href="#"><code class="xref py py-mod docutils literal notranslate"><span class="pre">xml.dom</span></code> --- 文档对象模型 API</a><ul>
|
||
<li><a class="reference internal" href="#module-contents">模块内容</a></li>
|
||
<li><a class="reference internal" href="#objects-in-the-dom">DOM 中的对象</a><ul>
|
||
<li><a class="reference internal" href="#domimplementation-objects">DOMImplementation 对象</a></li>
|
||
<li><a class="reference internal" href="#node-objects">节点对象</a></li>
|
||
<li><a class="reference internal" href="#nodelist-objects">节点列表对象</a></li>
|
||
<li><a class="reference internal" href="#documenttype-objects">文档类型对象</a></li>
|
||
<li><a class="reference internal" href="#document-objects">文档对象</a></li>
|
||
<li><a class="reference internal" href="#element-objects">元素对象</a></li>
|
||
<li><a class="reference internal" href="#attr-objects">Attr 对象</a></li>
|
||
<li><a class="reference internal" href="#namednodemap-objects">NamedNodeMap 对象</a></li>
|
||
<li><a class="reference internal" href="#comment-objects">注释对象</a></li>
|
||
<li><a class="reference internal" href="#text-and-cdatasection-objects">Text 和 CDATASection 对象</a></li>
|
||
<li><a class="reference internal" href="#processinginstruction-objects">ProcessingInstruction 对象</a></li>
|
||
<li><a class="reference internal" href="#exceptions">异常</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a class="reference internal" href="#conformance">一致性</a><ul>
|
||
<li><a class="reference internal" href="#type-mapping">类型映射</a></li>
|
||
<li><a class="reference internal" href="#accessor-methods">访问器方法</a></li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
|
||
<h4>上一个主题</h4>
|
||
<p class="topless"><a href="xml.etree.elementtree.html"
|
||
title="上一章"><code class="xref py py-mod docutils literal notranslate"><span class="pre">xml.etree.ElementTree</span></code> --- ElementTree XML API</a></p>
|
||
<h4>下一个主题</h4>
|
||
<p class="topless"><a href="xml.dom.minidom.html"
|
||
title="下一章"><code class="xref py py-mod docutils literal notranslate"><span class="pre">xml.dom.minidom</span></code> --- 最小化的 DOM 实现</a></p>
|
||
<div role="note" aria-label="source link">
|
||
<h3>本页</h3>
|
||
<ul class="this-page-menu">
|
||
<li><a href="../bugs.html">报告 Bug</a></li>
|
||
<li>
|
||
<a href="https://github.com/python/cpython/blob/3.8/Doc/library/xml.dom.rst"
|
||
rel="nofollow">显示源代码
|
||
</a>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</nav>
|
||
</div>
|
||
</div>
|
||
|
||
<div id="outdated-warning" style="padding: .5em; text-align: center; background-color: #FFBABA; color: #6A0E0E;">
|
||
这个文档所针对的是一个已不再受支持的 Python 旧版本。
|
||
你应当升级版本,并阅读
|
||
<a href="/3/library/xml.dom.html"> Python 当前稳定版本的文档</a>.
|
||
</div>
|
||
|
||
<div class="related" role="navigation" aria-label="related navigation">
|
||
<h3>导航</h3>
|
||
<ul>
|
||
<li class="right" style="margin-right: 10px">
|
||
<a href="../genindex.html" title="总目录"
|
||
accesskey="I">索引</a></li>
|
||
<li class="right" >
|
||
<a href="../py-modindex.html" title="Python 模块索引"
|
||
>模块</a> |</li>
|
||
<li class="right" >
|
||
<a href="xml.dom.minidom.html" title="xml.dom.minidom --- 最小化的 DOM 实现"
|
||
accesskey="N">下一页</a> |</li>
|
||
<li class="right" >
|
||
<a href="xml.etree.elementtree.html" title="xml.etree.ElementTree --- ElementTree XML API"
|
||
accesskey="P">上一页</a> |</li>
|
||
|
||
<li><img src="../_static/py.svg" alt="python logo" style="vertical-align: middle; margin-top: -1px"/></li>
|
||
<li><a href="https://www.python.org/">Python</a> »</li>
|
||
<li class="switchers">
|
||
<div class="language_switcher_placeholder"></div>
|
||
<div class="version_switcher_placeholder"></div>
|
||
</li>
|
||
<li>
|
||
|
||
</li>
|
||
<li id="cpython-language-and-version">
|
||
<a href="../index.html">3.8.20 Documentation</a> »
|
||
</li>
|
||
|
||
<li class="nav-item nav-item-1"><a href="index.html" >Python 标准库</a> »</li>
|
||
<li class="nav-item nav-item-2"><a href="markup.html" accesskey="U">结构化标记处理工具</a> »</li>
|
||
<li class="right">
|
||
|
||
|
||
<div class="inline-search" role="search">
|
||
<form class="inline-search" action="../search.html" method="get">
|
||
<input placeholder="快速搜索" aria-label="快速搜索" type="text" name="q" />
|
||
<input type="submit" value="转向" />
|
||
<input type="hidden" name="check_keywords" value="yes" />
|
||
<input type="hidden" name="area" value="default" />
|
||
</form>
|
||
</div>
|
||
|
|
||
</li>
|
||
|
||
</ul>
|
||
</div>
|
||
|
||
<div class="document">
|
||
<div class="documentwrapper">
|
||
<div class="bodywrapper">
|
||
<div class="body" role="main">
|
||
|
||
<section id="module-xml.dom">
|
||
<span id="xml-dom-the-document-object-model-api"></span><h1><a class="reference internal" href="#module-xml.dom" title="xml.dom: Document Object Model API for Python."><code class="xref py py-mod docutils literal notranslate"><span class="pre">xml.dom</span></code></a> --- 文档对象模型 API<a class="headerlink" href="#module-xml.dom" title="永久链接至标题">¶</a></h1>
|
||
<p><strong>源代码:</strong> <a class="reference external" href="https://github.com/python/cpython/tree/3.8/Lib/xml/dom/__init__.py">Lib/xml/dom/__init__.py</a></p>
|
||
<hr class="docutils" />
|
||
<p>文档对象模型“DOM”是一个来自万维网联盟(W3C)的跨语言 API,用于访问和修改 XML 文档。 DOM 的实现将 XML 文档以树结构表示,或者允许客户端代码从头构建这样的结构。 然后它会通过一组提供通用接口的对象赋予对结构的访问权。</p>
|
||
<p>DOM 特别适用于进行随机访问的应用。 SAX 仅允许你每次查看文档的一小部分。 如果你正在查看一个 SAX 元素,你将不能访问其他元素。 如果你正在查看一个文本节点,你将不能访问包含它的元素。 当你编写一个 SAX 应用时,你需要在你自己的代码的某个地方记住你的程序在文档中的位置。 SAX 不会帮你做这件事。 并且,如果你想要在 XML 文档中向前查看,你是绝对办不到的。</p>
|
||
<p>有些应用程序在不能访问树的事件驱动模型中是根本无法编写的。 当然你可以在 SAX 事件中自行构建某种树,但是 DOM 可以使你避免编写这样的代码。 DOM 是针对 XML 数据的标准树表示形式。</p>
|
||
<p>文档对象模型是由 W3C 分阶段定义的,在其术语中称为“层级”。 Python 中该 API 的映射大致是基于 DOM 第 2 层级的建议。</p>
|
||
<p>DOM 应用程序通常从将某些 XML 解析为 DOM 开始。 此操作如何实现完全未被 DOM 第 1 层级所涉及,而第 2 层级也只提供了有限的改进:有一个 <code class="xref py py-class docutils literal notranslate"><span class="pre">DOMImplementation</span></code> 对象类,它提供对 <code class="xref py py-class docutils literal notranslate"><span class="pre">Document</span></code> 创建方法的访问,但却没有办法以不依赖具体实现的方式访问 XML 读取器/解析器/文档创建器。 也没有当不存在 <code class="xref py py-class docutils literal notranslate"><span class="pre">Document</span></code> 对象的情况下访问这些方法的定义良好的方式。 在 Python 中,每个 DOM 实现将提供一个函数 <a class="reference internal" href="#xml.dom.getDOMImplementation" title="xml.dom.getDOMImplementation"><code class="xref py py-func docutils literal notranslate"><span class="pre">getDOMImplementation()</span></code></a>。 DOM 第 3 层级增加了一个载入/存储规格说明,它定义了与读取器的接口,但这在 Python 标准库中尚不可用。</p>
|
||
<p>一旦你得到了 DOM 文档对象,你就可以通过 XML 文档的属性和方法访问它的各个部分。 这些属性定义在 DOM 规格说明当中;参考指南的这一部分描述了 Python 对此规格说明的解读。</p>
|
||
<p>W3C 提供的规格说明定义了适用于 Java, ECMAScript 和 OMG IDL 的 DOM API。 这里定义的 Python 映射很大程度上是基于此规格说明的 IDL 版本,但并不要求严格映射(但具体实现可以自由地支持对 IDL 的严格映射)。 请参阅 <a class="reference internal" href="#dom-conformance"><span class="std std-ref">一致性</span></a> 一节查看有关映射要求的详细讨论。</p>
|
||
<div class="admonition seealso">
|
||
<p class="admonition-title">参见</p>
|
||
<dl class="simple">
|
||
<dt><a class="reference external" href="https://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/">文档对象模型 (DOM) 第 2 层级规格说明</a></dt><dd><p>被 Python DOM API 作为基础的 W3C 建议。</p>
|
||
</dd>
|
||
<dt><a class="reference external" href="https://www.w3.org/TR/REC-DOM-Level-1/">文档对象模型 (DOM) 第 1 层级规格说明</a></dt><dd><p>被 <a class="reference internal" href="xml.dom.minidom.html#module-xml.dom.minidom" title="xml.dom.minidom: Minimal Document Object Model (DOM) implementation."><code class="xref py py-mod docutils literal notranslate"><span class="pre">xml.dom.minidom</span></code></a> 所支持的 W3C 针对 DOM 的建议。</p>
|
||
</dd>
|
||
<dt><a class="reference external" href="http://www.omg.org/cgi-bin/doc?formal/02-11-05.pdf">Python 语言映射规格说明</a></dt><dd><p>此文档指明了从 OMG IDL 到 Python 的映射。</p>
|
||
</dd>
|
||
</dl>
|
||
</div>
|
||
<section id="module-contents">
|
||
<h2>模块内容<a class="headerlink" href="#module-contents" title="永久链接至标题">¶</a></h2>
|
||
<p><a class="reference internal" href="#module-xml.dom" title="xml.dom: Document Object Model API for Python."><code class="xref py py-mod docutils literal notranslate"><span class="pre">xml.dom</span></code></a> 包含下列函数:</p>
|
||
<dl class="function">
|
||
<dt id="xml.dom.registerDOMImplementation">
|
||
<code class="sig-prename descclassname">xml.dom.</code><code class="sig-name descname">registerDOMImplementation</code><span class="sig-paren">(</span><em class="sig-param">name</em>, <em class="sig-param">factory</em><span class="sig-paren">)</span><a class="headerlink" href="#xml.dom.registerDOMImplementation" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>注册 <em>factory</em> 函数并使用名称 <em>name</em>。 该工厂函数应当返回一个实现了 <code class="xref py py-class docutils literal notranslate"><span class="pre">DOMImplementation</span></code> 接口的对象。 该工厂函数可每次都返回相同对象,或每次调用都返回新的对象,视具体实现的要求而定(例如该实现是否支持某些定制功能)。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="function">
|
||
<dt id="xml.dom.getDOMImplementation">
|
||
<code class="sig-prename descclassname">xml.dom.</code><code class="sig-name descname">getDOMImplementation</code><span class="sig-paren">(</span><em class="sig-param">name=None</em>, <em class="sig-param">features=()</em><span class="sig-paren">)</span><a class="headerlink" href="#xml.dom.getDOMImplementation" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>返回一个适当的 DOM 实现。 <em>name</em> 是通用名称、DOM 实现的模块名称或者 <code class="docutils literal notranslate"><span class="pre">None</span></code>。 如果它不为 <code class="docutils literal notranslate"><span class="pre">None</span></code>,则会导入相应模块并在导入成功时返回一个 <code class="xref py py-class docutils literal notranslate"><span class="pre">DOMImplementation</span></code> 对象。 如果没有给出名称,并且如果设置了 <span class="target" id="index-2"></span><code class="xref std std-envvar docutils literal notranslate"><span class="pre">PYTHON_DOM</span></code> 环境变量,此变量会被用来查找相应的实现。</p>
|
||
<p>如果未给出 name,此函数会检查可用的实现来查找具有所需特性集的一个。 如果找不到任何实现,则会引发 <a class="reference internal" href="exceptions.html#ImportError" title="ImportError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ImportError</span></code></a>。 features 集必须是包含 <code class="docutils literal notranslate"><span class="pre">(feature,</span> <span class="pre">version)</span></code> 对的序列,它会被传给可用的 <code class="xref py py-class docutils literal notranslate"><span class="pre">DOMImplementation</span></code> 对象上的 <code class="xref py py-meth docutils literal notranslate"><span class="pre">hasFeature()</span></code> 方法。</p>
|
||
</dd></dl>
|
||
|
||
<p>还提供了一些便捷常量:</p>
|
||
<dl class="data">
|
||
<dt id="xml.dom.EMPTY_NAMESPACE">
|
||
<code class="sig-prename descclassname">xml.dom.</code><code class="sig-name descname">EMPTY_NAMESPACE</code><a class="headerlink" href="#xml.dom.EMPTY_NAMESPACE" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>该值用于指明没有命名空间被关联到 DOM 中的某个节点。 它通常被作为某个节点的 <code class="xref py py-attr docutils literal notranslate"><span class="pre">namespaceURI</span></code>,或者被用作某个命名空间专属方法的 <em>namespaceURI</em> 参数。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="data">
|
||
<dt id="xml.dom.XML_NAMESPACE">
|
||
<code class="sig-prename descclassname">xml.dom.</code><code class="sig-name descname">XML_NAMESPACE</code><a class="headerlink" href="#xml.dom.XML_NAMESPACE" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>关联到保留前缀 <code class="docutils literal notranslate"><span class="pre">xml</span></code> 的命名空间 URI,如 <a class="reference external" href="https://www.w3.org/TR/REC-xml-names/">XML 中的命名空间</a> (第 4 节) 所定义的。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="data">
|
||
<dt id="xml.dom.XMLNS_NAMESPACE">
|
||
<code class="sig-prename descclassname">xml.dom.</code><code class="sig-name descname">XMLNS_NAMESPACE</code><a class="headerlink" href="#xml.dom.XMLNS_NAMESPACE" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>命名空间声明的命名空间 URI,如 <a class="reference external" href="https://www.w3.org/TR/DOM-Level-2-Core/core.html">文档对象模型 (DOM) 第 2 层级核心规格说明</a> (第 1.1.8节) 所定义的。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="data">
|
||
<dt id="xml.dom.XHTML_NAMESPACE">
|
||
<code class="sig-prename descclassname">xml.dom.</code><code class="sig-name descname">XHTML_NAMESPACE</code><a class="headerlink" href="#xml.dom.XHTML_NAMESPACE" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>XHTML 命名空间的 URI,如 <a class="reference external" href="https://www.w3.org/TR/xhtml1/">XHTML 1.0: 扩展超文本标记语言</a> (第 3.1.1 节) 所定义的。</p>
|
||
</dd></dl>
|
||
|
||
<p>此外,<a class="reference internal" href="#module-xml.dom" title="xml.dom: Document Object Model API for Python."><code class="xref py py-mod docutils literal notranslate"><span class="pre">xml.dom</span></code></a> 还包含一个基本 <code class="xref py py-class docutils literal notranslate"><span class="pre">Node</span></code> 类和一些 DOM 异常类。 此模块提供的 <code class="xref py py-class docutils literal notranslate"><span class="pre">Node</span></code> 类未实现 DOM 规格描述所定义的任何方法和属性;实际的 DOM 实现必须提供它们。 提供 <code class="xref py py-class docutils literal notranslate"><span class="pre">Node</span></code> 类作为此模块的一部分并没有提供用于实际的 <code class="xref py py-class docutils literal notranslate"><span class="pre">Node</span></code> 对象的 <code class="xref py py-attr docutils literal notranslate"><span class="pre">nodeType</span></code> 属性的常量;它们是位于类内而不是位于模块层级以符合 DOM 规格描述。</p>
|
||
</section>
|
||
<section id="objects-in-the-dom">
|
||
<span id="dom-objects"></span><h2>DOM 中的对象<a class="headerlink" href="#objects-in-the-dom" title="永久链接至标题">¶</a></h2>
|
||
<p>DOM的权威文档是来自W3C的DOM规范。</p>
|
||
<p>请注意,DOM属性也可以作为节点而不是简单的字符串进行操作。然而,必须这样做的情况相当少见,所以这种用法还没有记录下来。</p>
|
||
<table class="docutils align-default">
|
||
<colgroup>
|
||
<col style="width: 32%" />
|
||
<col style="width: 35%" />
|
||
<col style="width: 33%" />
|
||
</colgroup>
|
||
<thead>
|
||
<tr class="row-odd"><th class="head"><p>接口</p></th>
|
||
<th class="head"><p>部件</p></th>
|
||
<th class="head"><p>目的</p></th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr class="row-even"><td><p><code class="xref py py-class docutils literal notranslate"><span class="pre">DOMImplementation</span></code></p></td>
|
||
<td><p><a class="reference internal" href="#dom-implementation-objects"><span class="std std-ref">DOMImplementation 对象</span></a></p></td>
|
||
<td><p>底层实现的接口。</p></td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><code class="xref py py-class docutils literal notranslate"><span class="pre">Node</span></code></p></td>
|
||
<td><p><a class="reference internal" href="#dom-node-objects"><span class="std std-ref">节点对象</span></a></p></td>
|
||
<td><p>文档中大多数对象的基本接口。</p></td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><code class="xref py py-class docutils literal notranslate"><span class="pre">NodeList</span></code></p></td>
|
||
<td><p><a class="reference internal" href="#dom-nodelist-objects"><span class="std std-ref">节点列表对象</span></a></p></td>
|
||
<td><p>节点序列的接口。</p></td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><code class="xref py py-class docutils literal notranslate"><span class="pre">DocumentType</span></code></p></td>
|
||
<td><p><a class="reference internal" href="#dom-documenttype-objects"><span class="std std-ref">文档类型对象</span></a></p></td>
|
||
<td><p>有关处理文档所需声明的信息。</p></td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><code class="xref py py-class docutils literal notranslate"><span class="pre">Document</span></code></p></td>
|
||
<td><p><a class="reference internal" href="#dom-document-objects"><span class="std std-ref">文档对象</span></a></p></td>
|
||
<td><p>表示整个文档的对象。</p></td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><code class="xref py py-class docutils literal notranslate"><span class="pre">Element</span></code></p></td>
|
||
<td><p><a class="reference internal" href="#dom-element-objects"><span class="std std-ref">元素对象</span></a></p></td>
|
||
<td><p>文档层次结构中的元素节点。</p></td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><code class="xref py py-class docutils literal notranslate"><span class="pre">Attr</span></code></p></td>
|
||
<td><p><a class="reference internal" href="#dom-attr-objects"><span class="std std-ref">Attr 对象</span></a></p></td>
|
||
<td><p>元素节点上的属性值节点。</p></td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><code class="xref py py-class docutils literal notranslate"><span class="pre">Comment</span></code></p></td>
|
||
<td><p><a class="reference internal" href="#dom-comment-objects"><span class="std std-ref">注释对象</span></a></p></td>
|
||
<td><p>源文档中注释的表示形式。</p></td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><code class="xref py py-class docutils literal notranslate"><span class="pre">Text</span></code></p></td>
|
||
<td><p><a class="reference internal" href="#dom-text-objects"><span class="std std-ref">Text 和 CDATASection 对象</span></a></p></td>
|
||
<td><p>包含文档中文本内容的节点。</p></td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><code class="xref py py-class docutils literal notranslate"><span class="pre">ProcessingInstruction</span></code></p></td>
|
||
<td><p><a class="reference internal" href="#dom-pi-objects"><span class="std std-ref">ProcessingInstruction 对象</span></a></p></td>
|
||
<td><p>处理指令表示形式。</p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<p>另一节描述了在Python中使用DOM定义的异常。</p>
|
||
<section id="domimplementation-objects">
|
||
<span id="dom-implementation-objects"></span><h3>DOMImplementation 对象<a class="headerlink" href="#domimplementation-objects" title="永久链接至标题">¶</a></h3>
|
||
<p><code class="xref py py-class docutils literal notranslate"><span class="pre">DOMImplementation</span></code> 接口提供了一种让应用程序确定他们所使用的 DOM 中某一特性可用性的方式。 DOM 第 2 级还添加了使用 <code class="xref py py-class docutils literal notranslate"><span class="pre">DOMImplementation</span></code> 来创建新的 <code class="xref py py-class docutils literal notranslate"><span class="pre">Document</span></code> 和 <code class="xref py py-class docutils literal notranslate"><span class="pre">DocumentType</span></code> 对象的能力。</p>
|
||
<dl class="method">
|
||
<dt id="xml.dom.DOMImplementation.hasFeature">
|
||
<code class="sig-prename descclassname">DOMImplementation.</code><code class="sig-name descname">hasFeature</code><span class="sig-paren">(</span><em class="sig-param">feature</em>, <em class="sig-param">version</em><span class="sig-paren">)</span><a class="headerlink" href="#xml.dom.DOMImplementation.hasFeature" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>如果字符串对 <em>feature</em> 和 <em>version</em> 所标识的特性已被实现则返回 <code class="docutils literal notranslate"><span class="pre">True</span></code>。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="xml.dom.DOMImplementation.createDocument">
|
||
<code class="sig-prename descclassname">DOMImplementation.</code><code class="sig-name descname">createDocument</code><span class="sig-paren">(</span><em class="sig-param">namespaceUri</em>, <em class="sig-param">qualifiedName</em>, <em class="sig-param">doctype</em><span class="sig-paren">)</span><a class="headerlink" href="#xml.dom.DOMImplementation.createDocument" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>返回一个新的 <code class="xref py py-class docutils literal notranslate"><span class="pre">Document</span></code> 对象 (DOM 的根节点),包含一个具有给定 <em>namespaceUri</em> 和 <em>qualifiedName</em> 的下级 <code class="xref py py-class docutils literal notranslate"><span class="pre">Element</span></code> 对象。 <em>doctype</em> 必须为由 <a class="reference internal" href="#xml.dom.DOMImplementation.createDocumentType" title="xml.dom.DOMImplementation.createDocumentType"><code class="xref py py-meth docutils literal notranslate"><span class="pre">createDocumentType()</span></code></a> 创建的 <code class="xref py py-class docutils literal notranslate"><span class="pre">DocumentType</span></code> 对象,或者为 <code class="docutils literal notranslate"><span class="pre">None</span></code>。 在 Python DOM API 中,前两个参数也可为 <code class="docutils literal notranslate"><span class="pre">None</span></code> 以表示不要创建任何下级 <code class="xref py py-class docutils literal notranslate"><span class="pre">Element</span></code>。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="xml.dom.DOMImplementation.createDocumentType">
|
||
<code class="sig-prename descclassname">DOMImplementation.</code><code class="sig-name descname">createDocumentType</code><span class="sig-paren">(</span><em class="sig-param">qualifiedName</em>, <em class="sig-param">publicId</em>, <em class="sig-param">systemId</em><span class="sig-paren">)</span><a class="headerlink" href="#xml.dom.DOMImplementation.createDocumentType" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>返回一个新的封装了给定 <em>qualifiedName</em>, <em>publicId</em> 和 <em>systemId</em> 字符串的 <code class="xref py py-class docutils literal notranslate"><span class="pre">DocumentType</span></code> 对象,它表示包含在 XML 文档类型声明中的信息。</p>
|
||
</dd></dl>
|
||
|
||
</section>
|
||
<section id="node-objects">
|
||
<span id="dom-node-objects"></span><h3>节点对象<a class="headerlink" href="#node-objects" title="永久链接至标题">¶</a></h3>
|
||
<p>XML 文档的所有组成部分都是 <code class="xref py py-class docutils literal notranslate"><span class="pre">Node</span></code> 的子类。</p>
|
||
<dl class="attribute">
|
||
<dt id="xml.dom.Node.nodeType">
|
||
<code class="sig-prename descclassname">Node.</code><code class="sig-name descname">nodeType</code><a class="headerlink" href="#xml.dom.Node.nodeType" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>一个代表节点类型的整数。 类型符号常量在 <code class="xref py py-class docutils literal notranslate"><span class="pre">Node</span></code> 对象上: <code class="xref py py-const docutils literal notranslate"><span class="pre">ELEMENT_NODE</span></code>, <code class="xref py py-const docutils literal notranslate"><span class="pre">ATTRIBUTE_NODE</span></code>, <code class="xref py py-const docutils literal notranslate"><span class="pre">TEXT_NODE</span></code>, <code class="xref py py-const docutils literal notranslate"><span class="pre">CDATA_SECTION_NODE</span></code>, <code class="xref py py-const docutils literal notranslate"><span class="pre">ENTITY_NODE</span></code>, <code class="xref py py-const docutils literal notranslate"><span class="pre">PROCESSING_INSTRUCTION_NODE</span></code>, <code class="xref py py-const docutils literal notranslate"><span class="pre">COMMENT_NODE</span></code>, <code class="xref py py-const docutils literal notranslate"><span class="pre">DOCUMENT_NODE</span></code>, <code class="xref py py-const docutils literal notranslate"><span class="pre">DOCUMENT_TYPE_NODE</span></code>, <code class="xref py py-const docutils literal notranslate"><span class="pre">NOTATION_NODE</span></code>。 这是个只读属性。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="attribute">
|
||
<dt id="xml.dom.Node.parentNode">
|
||
<code class="sig-prename descclassname">Node.</code><code class="sig-name descname">parentNode</code><a class="headerlink" href="#xml.dom.Node.parentNode" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>当前节点的上级,或者对于文档节点则为 <code class="docutils literal notranslate"><span class="pre">None</span></code>。 该值总是一个 <code class="xref py py-class docutils literal notranslate"><span class="pre">Node</span></code> 对象或者 <code class="docutils literal notranslate"><span class="pre">None</span></code>。 对于 <code class="xref py py-class docutils literal notranslate"><span class="pre">Element</span></code> 节点,这将为上级元素,但对于根元素例外,在此情况下它将为 <code class="xref py py-class docutils literal notranslate"><span class="pre">Document</span></code> 对象。 对于 <code class="xref py py-class docutils literal notranslate"><span class="pre">Attr</span></code> 节点,它将总是为 <code class="docutils literal notranslate"><span class="pre">None</span></code>。 这是个只读属性。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="attribute">
|
||
<dt id="xml.dom.Node.attributes">
|
||
<code class="sig-prename descclassname">Node.</code><code class="sig-name descname">attributes</code><a class="headerlink" href="#xml.dom.Node.attributes" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>属性对象的 <code class="xref py py-class docutils literal notranslate"><span class="pre">NamedNodeMap</span></code>。 这仅对元素才有实际值;其它对象会为该属性提供 <code class="docutils literal notranslate"><span class="pre">None</span></code> 值。 这是个只读属性。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="attribute">
|
||
<dt id="xml.dom.Node.previousSibling">
|
||
<code class="sig-prename descclassname">Node.</code><code class="sig-name descname">previousSibling</code><a class="headerlink" href="#xml.dom.Node.previousSibling" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>在此节点之前具有相同上级的相邻节点。 例如结束标记紧接在在 <em>self</em> 元素的开始标记之前的元素。 当然,XML 文档并非只是由元素组成,因此之前相邻节点可以是文本、注释或者其他内容。 如果此节点是上级的第一个子节点,则该属性将为 <code class="docutils literal notranslate"><span class="pre">None</span></code>。 这是一个只读属性。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="attribute">
|
||
<dt id="xml.dom.Node.nextSibling">
|
||
<code class="sig-prename descclassname">Node.</code><code class="sig-name descname">nextSibling</code><a class="headerlink" href="#xml.dom.Node.nextSibling" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>在此节点之后具有相同上级的相邻节点。 另请参见 <a class="reference internal" href="#xml.dom.Node.previousSibling" title="xml.dom.Node.previousSibling"><code class="xref py py-attr docutils literal notranslate"><span class="pre">previousSibling</span></code></a>。 如果此节点是上级的最后一个子节点,则该属性将为 <code class="docutils literal notranslate"><span class="pre">None</span></code>。 这是一个只读属性。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="attribute">
|
||
<dt id="xml.dom.Node.childNodes">
|
||
<code class="sig-prename descclassname">Node.</code><code class="sig-name descname">childNodes</code><a class="headerlink" href="#xml.dom.Node.childNodes" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>包含在此节点中的节点列表。 这是一个只读属性。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="attribute">
|
||
<dt id="xml.dom.Node.firstChild">
|
||
<code class="sig-prename descclassname">Node.</code><code class="sig-name descname">firstChild</code><a class="headerlink" href="#xml.dom.Node.firstChild" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>节点的第一个下级,如果有的话,否则为 <code class="docutils literal notranslate"><span class="pre">None</span></code>。 这是个只读属性。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="attribute">
|
||
<dt id="xml.dom.Node.lastChild">
|
||
<code class="sig-prename descclassname">Node.</code><code class="sig-name descname">lastChild</code><a class="headerlink" href="#xml.dom.Node.lastChild" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>节点的最后一个下级,如果有的话,否则为 <code class="docutils literal notranslate"><span class="pre">None</span></code>。 这是个只读属性。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="attribute">
|
||
<dt id="xml.dom.Node.localName">
|
||
<code class="sig-prename descclassname">Node.</code><code class="sig-name descname">localName</code><a class="headerlink" href="#xml.dom.Node.localName" title="永久链接至目标">¶</a></dt>
|
||
<dd><p><code class="xref py py-attr docutils literal notranslate"><span class="pre">tagName</span></code> 在冒号之后的部分,如果有的话,否则为整个 <code class="xref py py-attr docutils literal notranslate"><span class="pre">tagName</span></code>。 该值为一个字符串。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="attribute">
|
||
<dt id="xml.dom.Node.prefix">
|
||
<code class="sig-prename descclassname">Node.</code><code class="sig-name descname">prefix</code><a class="headerlink" href="#xml.dom.Node.prefix" title="永久链接至目标">¶</a></dt>
|
||
<dd><p><code class="xref py py-attr docutils literal notranslate"><span class="pre">tagName</span></code> 在冒号之前的部分,如果有冒号的话,否则为空字符串。 该值为一个字符串或者为 <code class="docutils literal notranslate"><span class="pre">None</span></code>。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="attribute">
|
||
<dt id="xml.dom.Node.namespaceURI">
|
||
<code class="sig-prename descclassname">Node.</code><code class="sig-name descname">namespaceURI</code><a class="headerlink" href="#xml.dom.Node.namespaceURI" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>关联到元素名称的命名空间。 这将是一个字符串或为 <code class="docutils literal notranslate"><span class="pre">None</span></code>。 这是个只读属性。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="attribute">
|
||
<dt id="xml.dom.Node.nodeName">
|
||
<code class="sig-prename descclassname">Node.</code><code class="sig-name descname">nodeName</code><a class="headerlink" href="#xml.dom.Node.nodeName" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>这对于每种节点类型具有不同的含义;请查看 DOM 规格说明来了解详情。 你总是可以从其他特征属性例如元素的 <code class="xref py py-attr docutils literal notranslate"><span class="pre">tagName</span></code> 特征属性或属性的 <code class="xref py py-attr docutils literal notranslate"><span class="pre">name</span></code> 特征属性获取你能从这里获取的信息。 对于所有节点类型,这个属性的值都将是一个字符串或为 <code class="docutils literal notranslate"><span class="pre">None</span></code>。 这是一个只读属性。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="attribute">
|
||
<dt id="xml.dom.Node.nodeValue">
|
||
<code class="sig-prename descclassname">Node.</code><code class="sig-name descname">nodeValue</code><a class="headerlink" href="#xml.dom.Node.nodeValue" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>这对于每种节点类型具有不同的含义;请查看 DOM 规格说明来了解详情。 具体情况与 <a class="reference internal" href="#xml.dom.Node.nodeName" title="xml.dom.Node.nodeName"><code class="xref py py-attr docutils literal notranslate"><span class="pre">nodeName</span></code></a> 的类似。 该值是一个字符串或为 <code class="docutils literal notranslate"><span class="pre">None</span></code>。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="xml.dom.Node.hasAttributes">
|
||
<code class="sig-prename descclassname">Node.</code><code class="sig-name descname">hasAttributes</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#xml.dom.Node.hasAttributes" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>如果该节点具有任何属性则返回 <code class="docutils literal notranslate"><span class="pre">True</span></code>。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="xml.dom.Node.hasChildNodes">
|
||
<code class="sig-prename descclassname">Node.</code><code class="sig-name descname">hasChildNodes</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#xml.dom.Node.hasChildNodes" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>如果该节点具有任何子节点则返回 <code class="docutils literal notranslate"><span class="pre">True</span></code>。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="xml.dom.Node.isSameNode">
|
||
<code class="sig-prename descclassname">Node.</code><code class="sig-name descname">isSameNode</code><span class="sig-paren">(</span><em class="sig-param">other</em><span class="sig-paren">)</span><a class="headerlink" href="#xml.dom.Node.isSameNode" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>如果 <em>other</em> 指向的节点就是此节点则返回 <code class="docutils literal notranslate"><span class="pre">True</span></code>。 这对于使用了任何代理架构的 DOM 实现来说特别有用(因为多个对象可能指向相同节点)。</p>
|
||
<div class="admonition note">
|
||
<p class="admonition-title">注解</p>
|
||
<p>这是基于已提议的 DOM 第 3 等级 API,目前尚处于“起草”阶段,但这个特定接口看来并不存在争议。 来自 W3C 的修改将不会影响 Python DOM 接口中的这个方法(不过针对它的任何新 W3C API 也将受到支持)。</p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="xml.dom.Node.appendChild">
|
||
<code class="sig-prename descclassname">Node.</code><code class="sig-name descname">appendChild</code><span class="sig-paren">(</span><em class="sig-param">newChild</em><span class="sig-paren">)</span><a class="headerlink" href="#xml.dom.Node.appendChild" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>在子节点列表末尾添加一个新的子节点,返回 <em>newChild</em>。 如果节点已存在于树结构中,它将先被移除。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="xml.dom.Node.insertBefore">
|
||
<code class="sig-prename descclassname">Node.</code><code class="sig-name descname">insertBefore</code><span class="sig-paren">(</span><em class="sig-param">newChild</em>, <em class="sig-param">refChild</em><span class="sig-paren">)</span><a class="headerlink" href="#xml.dom.Node.insertBefore" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>在现有的子节点之前插入一个新的子节点。 它必须属于 <em>refChild</em> 是这个节点的子节点的情况;如果不是,则会引发 <a class="reference internal" href="exceptions.html#ValueError" title="ValueError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ValueError</span></code></a>。<em>newChild</em> 会被返回。 如果 <em>refChild</em> 为 <code class="docutils literal notranslate"><span class="pre">None</span></code>,它会将 <em>newChild</em> 插入到子节点列表的末尾。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="xml.dom.Node.removeChild">
|
||
<code class="sig-prename descclassname">Node.</code><code class="sig-name descname">removeChild</code><span class="sig-paren">(</span><em class="sig-param">oldChild</em><span class="sig-paren">)</span><a class="headerlink" href="#xml.dom.Node.removeChild" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>移除一个子节点。 <em>oldChild</em> 必须是这个节点的子节点;如果不是,则会引发 <a class="reference internal" href="exceptions.html#ValueError" title="ValueError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ValueError</span></code></a>。 成功时 <em>oldChild</em> 会被返回。 如果 <em>oldChild</em> 将不再被继续使用,则将调用它的 <code class="xref py py-meth docutils literal notranslate"><span class="pre">unlink()</span></code> 方法。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="xml.dom.Node.replaceChild">
|
||
<code class="sig-prename descclassname">Node.</code><code class="sig-name descname">replaceChild</code><span class="sig-paren">(</span><em class="sig-param">newChild</em>, <em class="sig-param">oldChild</em><span class="sig-paren">)</span><a class="headerlink" href="#xml.dom.Node.replaceChild" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>将一个现有节点替换为新的节点。 这必须属于 <em>oldChild</em> 是该节点的子节点的情况;如果不是,则会引发 <a class="reference internal" href="exceptions.html#ValueError" title="ValueError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ValueError</span></code></a>。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="xml.dom.Node.normalize">
|
||
<code class="sig-prename descclassname">Node.</code><code class="sig-name descname">normalize</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#xml.dom.Node.normalize" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>合并相邻的文本节点以便将所有文本段存储为单个 <code class="xref py py-class docutils literal notranslate"><span class="pre">Text</span></code> 实例。 这可以简化许多应用程序处理来自 DOM 树文本的操作。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="xml.dom.Node.cloneNode">
|
||
<code class="sig-prename descclassname">Node.</code><code class="sig-name descname">cloneNode</code><span class="sig-paren">(</span><em class="sig-param">deep</em><span class="sig-paren">)</span><a class="headerlink" href="#xml.dom.Node.cloneNode" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>克隆此节点。 设置 <em>deep</em> 表示也克隆所有子节点。 此方法将返回克隆的节点。</p>
|
||
</dd></dl>
|
||
|
||
</section>
|
||
<section id="nodelist-objects">
|
||
<span id="dom-nodelist-objects"></span><h3>节点列表对象<a class="headerlink" href="#nodelist-objects" title="永久链接至标题">¶</a></h3>
|
||
<p><code class="xref py py-class docutils literal notranslate"><span class="pre">NodeList</span></code> 代表一个节点列表。 在 DOM 核心建议中这些对象有两种使用方式: 由 <code class="xref py py-class docutils literal notranslate"><span class="pre">Element</span></code> 对象提供作为其子节点列表,以及由 <code class="xref py py-class docutils literal notranslate"><span class="pre">Node</span></code> 的 <code class="xref py py-meth docutils literal notranslate"><span class="pre">getElementsByTagName()</span></code> 和 <code class="xref py py-meth docutils literal notranslate"><span class="pre">getElementsByTagNameNS()</span></code> 方法通过此接口返回对象来表示查询结果。</p>
|
||
<p>DOM 第 2 层级建议为这些对象定义一个方法和一个属性:</p>
|
||
<dl class="method">
|
||
<dt id="xml.dom.NodeList.item">
|
||
<code class="sig-prename descclassname">NodeList.</code><code class="sig-name descname">item</code><span class="sig-paren">(</span><em class="sig-param">i</em><span class="sig-paren">)</span><a class="headerlink" href="#xml.dom.NodeList.item" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>从序列中返回第 <em>i</em> 项,如果序列不为空的话,否则返回 <code class="docutils literal notranslate"><span class="pre">None</span></code>。 索引号 <em>i</em> 不允许小于零或大于等于序列的长度。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="attribute">
|
||
<dt id="xml.dom.NodeList.length">
|
||
<code class="sig-prename descclassname">NodeList.</code><code class="sig-name descname">length</code><a class="headerlink" href="#xml.dom.NodeList.length" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>序列中的节点数量。</p>
|
||
</dd></dl>
|
||
|
||
<p>此外,Python DOM 接口还要求提供一些额外支持来允许将 <code class="xref py py-class docutils literal notranslate"><span class="pre">NodeList</span></code> 对象用作 Python 序列。 所有 <code class="xref py py-class docutils literal notranslate"><span class="pre">NodeList</span></code> 实现都必须包括对 <a class="reference internal" href="../reference/datamodel.html#object.__len__" title="object.__len__"><code class="xref py py-meth docutils literal notranslate"><span class="pre">__len__()</span></code></a> 和 <a class="reference internal" href="../reference/datamodel.html#object.__getitem__" title="object.__getitem__"><code class="xref py py-meth docutils literal notranslate"><span class="pre">__getitem__()</span></code></a> 的支持;这样 <code class="xref py py-class docutils literal notranslate"><span class="pre">NodeList</span></code> 就允许使用 <a class="reference internal" href="../reference/compound_stmts.html#for"><code class="xref std std-keyword docutils literal notranslate"><span class="pre">for</span></code></a> 语句进行迭代并能正确地支持 <a class="reference internal" href="functions.html#len" title="len"><code class="xref py py-func docutils literal notranslate"><span class="pre">len()</span></code></a> 内置函数。</p>
|
||
<p>如果一个 DOM 实现支持文档的修改,则 <code class="xref py py-class docutils literal notranslate"><span class="pre">NodeList</span></code> 实现还必须支持 <a class="reference internal" href="../reference/datamodel.html#object.__setitem__" title="object.__setitem__"><code class="xref py py-meth docutils literal notranslate"><span class="pre">__setitem__()</span></code></a> 和 <a class="reference internal" href="../reference/datamodel.html#object.__delitem__" title="object.__delitem__"><code class="xref py py-meth docutils literal notranslate"><span class="pre">__delitem__()</span></code></a> 方法。</p>
|
||
</section>
|
||
<section id="documenttype-objects">
|
||
<span id="dom-documenttype-objects"></span><h3>文档类型对象<a class="headerlink" href="#documenttype-objects" title="永久链接至标题">¶</a></h3>
|
||
<p>有关一个文档所声明的标注和实体的信息(包括解析器所使用并能提供信息的外部子集)可以从 <code class="xref py py-class docutils literal notranslate"><span class="pre">DocumentType</span></code> 对象获取。 文档的 <code class="xref py py-class docutils literal notranslate"><span class="pre">DocumentType</span></code> 可从 <code class="xref py py-class docutils literal notranslate"><span class="pre">Document</span></code> 对象的 <code class="xref py py-attr docutils literal notranslate"><span class="pre">doctype</span></code> 属性中获取;如果一个文档没有 <code class="docutils literal notranslate"><span class="pre">DOCTYPE</span></code> 声明,则该文档的 <code class="xref py py-attr docutils literal notranslate"><span class="pre">doctype</span></code> 属性将被设为 <code class="docutils literal notranslate"><span class="pre">None</span></code> 而非此接口的一个实例。</p>
|
||
<p><code class="xref py py-class docutils literal notranslate"><span class="pre">DocumentType</span></code> 是 <code class="xref py py-class docutils literal notranslate"><span class="pre">Node</span></code> 是专门化,并增加了下列属性:</p>
|
||
<dl class="attribute">
|
||
<dt id="xml.dom.DocumentType.publicId">
|
||
<code class="sig-prename descclassname">DocumentType.</code><code class="sig-name descname">publicId</code><a class="headerlink" href="#xml.dom.DocumentType.publicId" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>文档类型定义的外部子集的公有标识。 这将为一个字符串或者为 <code class="docutils literal notranslate"><span class="pre">None</span></code>。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="attribute">
|
||
<dt id="xml.dom.DocumentType.systemId">
|
||
<code class="sig-prename descclassname">DocumentType.</code><code class="sig-name descname">systemId</code><a class="headerlink" href="#xml.dom.DocumentType.systemId" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>文档类型定义的外部子集的系统标识。 这将为一个字符串形式的 URI,或者为 <code class="docutils literal notranslate"><span class="pre">None</span></code>。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="attribute">
|
||
<dt id="xml.dom.DocumentType.internalSubset">
|
||
<code class="sig-prename descclassname">DocumentType.</code><code class="sig-name descname">internalSubset</code><a class="headerlink" href="#xml.dom.DocumentType.internalSubset" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>一个给出来自文档的完整内部子集的字符串。 这不包括子集外面的圆括号。 如果文档没有内部子集,则应为 <code class="docutils literal notranslate"><span class="pre">None</span></code>。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="attribute">
|
||
<dt id="xml.dom.DocumentType.name">
|
||
<code class="sig-prename descclassname">DocumentType.</code><code class="sig-name descname">name</code><a class="headerlink" href="#xml.dom.DocumentType.name" title="永久链接至目标">¶</a></dt>
|
||
<dd><p><code class="docutils literal notranslate"><span class="pre">DOCTYPE</span></code> 声明中给出的根元素名称,如果有的话。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="attribute">
|
||
<dt id="xml.dom.DocumentType.entities">
|
||
<code class="sig-prename descclassname">DocumentType.</code><code class="sig-name descname">entities</code><a class="headerlink" href="#xml.dom.DocumentType.entities" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>这是给出外部实体定义的 <code class="xref py py-class docutils literal notranslate"><span class="pre">NamedNodeMap</span></code>。 对于多次定义的实体名称,则只提供第一次的定义(其他的会按照 XML 建议被忽略)。 这可能为 <code class="docutils literal notranslate"><span class="pre">None</span></code>,如果解析器未提供此信息,或者如果未定义任何实体的话。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="attribute">
|
||
<dt id="xml.dom.DocumentType.notations">
|
||
<code class="sig-prename descclassname">DocumentType.</code><code class="sig-name descname">notations</code><a class="headerlink" href="#xml.dom.DocumentType.notations" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>这是给出标注定义的 <code class="xref py py-class docutils literal notranslate"><span class="pre">NamedNodeMap</span></code>。 对于多次定义的标注,则只提供第一次的定义(其他的会按照 XML 建议被忽略)。 这可能为 <code class="docutils literal notranslate"><span class="pre">None</span></code>,如果解析器未提供此信息,或者如果未定义任何注释的话。</p>
|
||
</dd></dl>
|
||
|
||
</section>
|
||
<section id="document-objects">
|
||
<span id="dom-document-objects"></span><h3>文档对象<a class="headerlink" href="#document-objects" title="永久链接至标题">¶</a></h3>
|
||
<p><code class="xref py py-class docutils literal notranslate"><span class="pre">Document</span></code> 代表一个完整的 XML 文档,包括其组成元素、属性、处理指令和注释等。 请记住它会继承来自 <code class="xref py py-class docutils literal notranslate"><span class="pre">Node</span></code> 的属性。</p>
|
||
<dl class="attribute">
|
||
<dt id="xml.dom.Document.documentElement">
|
||
<code class="sig-prename descclassname">Document.</code><code class="sig-name descname">documentElement</code><a class="headerlink" href="#xml.dom.Document.documentElement" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>文档唯一的根元素。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="xml.dom.Document.createElement">
|
||
<code class="sig-prename descclassname">Document.</code><code class="sig-name descname">createElement</code><span class="sig-paren">(</span><em class="sig-param">tagName</em><span class="sig-paren">)</span><a class="headerlink" href="#xml.dom.Document.createElement" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>创建并返回一个新的元素节点。 当元素被创建时不会被插入到文档中。 你需要通过某个其他方法例如 <code class="xref py py-meth docutils literal notranslate"><span class="pre">insertBefore()</span></code> 或 <code class="xref py py-meth docutils literal notranslate"><span class="pre">appendChild()</span></code> 来显示地插入它。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="xml.dom.Document.createElementNS">
|
||
<code class="sig-prename descclassname">Document.</code><code class="sig-name descname">createElementNS</code><span class="sig-paren">(</span><em class="sig-param">namespaceURI</em>, <em class="sig-param">tagName</em><span class="sig-paren">)</span><a class="headerlink" href="#xml.dom.Document.createElementNS" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>创建并返回一个新的带有命名空间的元素。 <em>tagName</em> 可以带有前缀。 当元素被创建时不会被插入到文档中。 你需要通过某个其他方法例如 <code class="xref py py-meth docutils literal notranslate"><span class="pre">insertBefore()</span></code> 或 <code class="xref py py-meth docutils literal notranslate"><span class="pre">appendChild()</span></code> 来显式地插入它。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="xml.dom.Document.createTextNode">
|
||
<code class="sig-prename descclassname">Document.</code><code class="sig-name descname">createTextNode</code><span class="sig-paren">(</span><em class="sig-param">data</em><span class="sig-paren">)</span><a class="headerlink" href="#xml.dom.Document.createTextNode" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>创建并返回一个包含作为形参被传入的数据的文本节点。 与其他创建方法一样,此方法不会将节点插入到树中。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="xml.dom.Document.createComment">
|
||
<code class="sig-prename descclassname">Document.</code><code class="sig-name descname">createComment</code><span class="sig-paren">(</span><em class="sig-param">data</em><span class="sig-paren">)</span><a class="headerlink" href="#xml.dom.Document.createComment" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>创建并返回一个作为形参被传入的数据的注释节点。 与其他创建方法一样,此方法不会将节点插入到树中。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="xml.dom.Document.createProcessingInstruction">
|
||
<code class="sig-prename descclassname">Document.</code><code class="sig-name descname">createProcessingInstruction</code><span class="sig-paren">(</span><em class="sig-param">target</em>, <em class="sig-param">data</em><span class="sig-paren">)</span><a class="headerlink" href="#xml.dom.Document.createProcessingInstruction" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>创建并返回一个包含作为形参被传入的 <em>target</em> 和 <em>data</em> 的处理指令节点。 与其他创建方法一样,此方法不会将节点插入到树中。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="xml.dom.Document.createAttribute">
|
||
<code class="sig-prename descclassname">Document.</code><code class="sig-name descname">createAttribute</code><span class="sig-paren">(</span><em class="sig-param">name</em><span class="sig-paren">)</span><a class="headerlink" href="#xml.dom.Document.createAttribute" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>创建并返回一个属性节点。 此方法不会将属性关联到任何特定的元素。 你必须在正确的 <code class="xref py py-class docutils literal notranslate"><span class="pre">Element</span></code> 对象上使用 <code class="xref py py-meth docutils literal notranslate"><span class="pre">setAttributeNode()</span></code> 来使用新创建的属性实例。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="xml.dom.Document.createAttributeNS">
|
||
<code class="sig-prename descclassname">Document.</code><code class="sig-name descname">createAttributeNS</code><span class="sig-paren">(</span><em class="sig-param">namespaceURI</em>, <em class="sig-param">qualifiedName</em><span class="sig-paren">)</span><a class="headerlink" href="#xml.dom.Document.createAttributeNS" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>创建并返回一个带有命名空间的属性节点。 <em>tagName</em> 可以带有前缀。 此方法不会将属性节点关联到任何特定的元素。 你必须在正确的 <code class="xref py py-class docutils literal notranslate"><span class="pre">Element</span></code> 对象上使用 <code class="xref py py-meth docutils literal notranslate"><span class="pre">setAttributeNode()</span></code> 来使用新创建的属性实例。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="xml.dom.Document.getElementsByTagName">
|
||
<code class="sig-prename descclassname">Document.</code><code class="sig-name descname">getElementsByTagName</code><span class="sig-paren">(</span><em class="sig-param">tagName</em><span class="sig-paren">)</span><a class="headerlink" href="#xml.dom.Document.getElementsByTagName" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>搜索全部具有特定元素类型名称的后继元素(直接下级、下级的下级等等)。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="xml.dom.Document.getElementsByTagNameNS">
|
||
<code class="sig-prename descclassname">Document.</code><code class="sig-name descname">getElementsByTagNameNS</code><span class="sig-paren">(</span><em class="sig-param">namespaceURI</em>, <em class="sig-param">localName</em><span class="sig-paren">)</span><a class="headerlink" href="#xml.dom.Document.getElementsByTagNameNS" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>搜索全部具有特定命名空间 URI 和 localname 的后继元素(直接下级、下级的下级等等)。 localname 是命名空间在前缀之后的部分。</p>
|
||
</dd></dl>
|
||
|
||
</section>
|
||
<section id="element-objects">
|
||
<span id="dom-element-objects"></span><h3>元素对象<a class="headerlink" href="#element-objects" title="永久链接至标题">¶</a></h3>
|
||
<p><code class="xref py py-class docutils literal notranslate"><span class="pre">Element</span></code> 是 <code class="xref py py-class docutils literal notranslate"><span class="pre">Node</span></code> 的子类,因此会继承该类的全部属性。</p>
|
||
<dl class="attribute">
|
||
<dt id="xml.dom.Element.tagName">
|
||
<code class="sig-prename descclassname">Element.</code><code class="sig-name descname">tagName</code><a class="headerlink" href="#xml.dom.Element.tagName" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>元素类型名称。 在使用命名空间的文档中它可能包含冒号。 该值是一个字符串。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="xml.dom.Element.getElementsByTagName">
|
||
<code class="sig-prename descclassname">Element.</code><code class="sig-name descname">getElementsByTagName</code><span class="sig-paren">(</span><em class="sig-param">tagName</em><span class="sig-paren">)</span><a class="headerlink" href="#xml.dom.Element.getElementsByTagName" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>与 <code class="xref py py-class docutils literal notranslate"><span class="pre">Document</span></code> 类中的对应方法相同。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="xml.dom.Element.getElementsByTagNameNS">
|
||
<code class="sig-prename descclassname">Element.</code><code class="sig-name descname">getElementsByTagNameNS</code><span class="sig-paren">(</span><em class="sig-param">namespaceURI</em>, <em class="sig-param">localName</em><span class="sig-paren">)</span><a class="headerlink" href="#xml.dom.Element.getElementsByTagNameNS" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>与 <code class="xref py py-class docutils literal notranslate"><span class="pre">Document</span></code> 类中的对应方法相同。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="xml.dom.Element.hasAttribute">
|
||
<code class="sig-prename descclassname">Element.</code><code class="sig-name descname">hasAttribute</code><span class="sig-paren">(</span><em class="sig-param">name</em><span class="sig-paren">)</span><a class="headerlink" href="#xml.dom.Element.hasAttribute" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>如果元素带有名称为 <em>name</em> 的属性则返回 <code class="docutils literal notranslate"><span class="pre">True</span></code>。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="xml.dom.Element.hasAttributeNS">
|
||
<code class="sig-prename descclassname">Element.</code><code class="sig-name descname">hasAttributeNS</code><span class="sig-paren">(</span><em class="sig-param">namespaceURI</em>, <em class="sig-param">localName</em><span class="sig-paren">)</span><a class="headerlink" href="#xml.dom.Element.hasAttributeNS" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>如果元素带有名称为 <em>namespaceURI</em> 和 <em>localName</em> 的属性则返回 <code class="docutils literal notranslate"><span class="pre">True</span></code>。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="xml.dom.Element.getAttribute">
|
||
<code class="sig-prename descclassname">Element.</code><code class="sig-name descname">getAttribute</code><span class="sig-paren">(</span><em class="sig-param">name</em><span class="sig-paren">)</span><a class="headerlink" href="#xml.dom.Element.getAttribute" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>将名称为 <em>name</em> 的属性的值作为字符串返回。 如果指定属性不存在,则返回空字符串,就像该属性没有对应的值一样。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="xml.dom.Element.getAttributeNode">
|
||
<code class="sig-prename descclassname">Element.</code><code class="sig-name descname">getAttributeNode</code><span class="sig-paren">(</span><em class="sig-param">attrname</em><span class="sig-paren">)</span><a class="headerlink" href="#xml.dom.Element.getAttributeNode" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>返回名称为 <em>attrname</em> 的属性对应的 <code class="xref py py-class docutils literal notranslate"><span class="pre">Attr</span></code> 节点。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="xml.dom.Element.getAttributeNS">
|
||
<code class="sig-prename descclassname">Element.</code><code class="sig-name descname">getAttributeNS</code><span class="sig-paren">(</span><em class="sig-param">namespaceURI</em>, <em class="sig-param">localName</em><span class="sig-paren">)</span><a class="headerlink" href="#xml.dom.Element.getAttributeNS" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>将名称为 <em>namespaceURI</em> 加 <em>localName</em> 的属性的值作为字符串返回。 如果指定属性不存在,则返回空字符串,就像该属性没有对应的值一样。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="xml.dom.Element.getAttributeNodeNS">
|
||
<code class="sig-prename descclassname">Element.</code><code class="sig-name descname">getAttributeNodeNS</code><span class="sig-paren">(</span><em class="sig-param">namespaceURI</em>, <em class="sig-param">localName</em><span class="sig-paren">)</span><a class="headerlink" href="#xml.dom.Element.getAttributeNodeNS" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>将给定 <em>namespaceURI</em> 加 <em>localName</em> 的属性的值作为节点返回。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="xml.dom.Element.removeAttribute">
|
||
<code class="sig-prename descclassname">Element.</code><code class="sig-name descname">removeAttribute</code><span class="sig-paren">(</span><em class="sig-param">name</em><span class="sig-paren">)</span><a class="headerlink" href="#xml.dom.Element.removeAttribute" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>移除指定名称的节点。 如果没有匹配的属性,则会引发 <a class="reference internal" href="#xml.dom.NotFoundErr" title="xml.dom.NotFoundErr"><code class="xref py py-exc docutils literal notranslate"><span class="pre">NotFoundErr</span></code></a>。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="xml.dom.Element.removeAttributeNode">
|
||
<code class="sig-prename descclassname">Element.</code><code class="sig-name descname">removeAttributeNode</code><span class="sig-paren">(</span><em class="sig-param">oldAttr</em><span class="sig-paren">)</span><a class="headerlink" href="#xml.dom.Element.removeAttributeNode" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>从属性列表中移除并返回 <em>oldAttr</em>,如果该属性存在的话。 如果 <em>oldAttr</em> 不存在,则会引发 <a class="reference internal" href="#xml.dom.NotFoundErr" title="xml.dom.NotFoundErr"><code class="xref py py-exc docutils literal notranslate"><span class="pre">NotFoundErr</span></code></a>。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="xml.dom.Element.removeAttributeNS">
|
||
<code class="sig-prename descclassname">Element.</code><code class="sig-name descname">removeAttributeNS</code><span class="sig-paren">(</span><em class="sig-param">namespaceURI</em>, <em class="sig-param">localName</em><span class="sig-paren">)</span><a class="headerlink" href="#xml.dom.Element.removeAttributeNS" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>移除指定名称的属性。 请注意它是使用 localName 而不是 qname。 如果没有匹配的属性也不会引发异常。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="xml.dom.Element.setAttribute">
|
||
<code class="sig-prename descclassname">Element.</code><code class="sig-name descname">setAttribute</code><span class="sig-paren">(</span><em class="sig-param">name</em>, <em class="sig-param">value</em><span class="sig-paren">)</span><a class="headerlink" href="#xml.dom.Element.setAttribute" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>将属性值设为指定的字符串。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="xml.dom.Element.setAttributeNode">
|
||
<code class="sig-prename descclassname">Element.</code><code class="sig-name descname">setAttributeNode</code><span class="sig-paren">(</span><em class="sig-param">newAttr</em><span class="sig-paren">)</span><a class="headerlink" href="#xml.dom.Element.setAttributeNode" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>将一个新的属性节点添加到元素,当匹配到 <code class="xref py py-attr docutils literal notranslate"><span class="pre">name</span></code> 属性时如有必要会替换现有的属性。 如果发生了替换,将返回原有属性节点。 如果 <em>newAttr</em> 已经被使用,则会引发 <a class="reference internal" href="#xml.dom.InuseAttributeErr" title="xml.dom.InuseAttributeErr"><code class="xref py py-exc docutils literal notranslate"><span class="pre">InuseAttributeErr</span></code></a>。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="xml.dom.Element.setAttributeNodeNS">
|
||
<code class="sig-prename descclassname">Element.</code><code class="sig-name descname">setAttributeNodeNS</code><span class="sig-paren">(</span><em class="sig-param">newAttr</em><span class="sig-paren">)</span><a class="headerlink" href="#xml.dom.Element.setAttributeNodeNS" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>将一个新的属性节点添加到元素,当匹配到 <code class="xref py py-attr docutils literal notranslate"><span class="pre">namespaceURI</span></code> 和 <code class="xref py py-attr docutils literal notranslate"><span class="pre">localName</span></code> 属性时如有必要会替换现有的属性。 如果发生了替换,将返回原有属性节点。 如果 <em>newAttr</em> 已经被使用,则会引发 <a class="reference internal" href="#xml.dom.InuseAttributeErr" title="xml.dom.InuseAttributeErr"><code class="xref py py-exc docutils literal notranslate"><span class="pre">InuseAttributeErr</span></code></a>。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="xml.dom.Element.setAttributeNS">
|
||
<code class="sig-prename descclassname">Element.</code><code class="sig-name descname">setAttributeNS</code><span class="sig-paren">(</span><em class="sig-param">namespaceURI</em>, <em class="sig-param">qname</em>, <em class="sig-param">value</em><span class="sig-paren">)</span><a class="headerlink" href="#xml.dom.Element.setAttributeNS" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>将属性值设为 <em>namespaceURI</em> 和 <em>qname</em> 所给出的字符串。 请注意 qname 是整个属性名称。 这与上面的方法不同。</p>
|
||
</dd></dl>
|
||
|
||
</section>
|
||
<section id="attr-objects">
|
||
<span id="dom-attr-objects"></span><h3>Attr 对象<a class="headerlink" href="#attr-objects" title="永久链接至标题">¶</a></h3>
|
||
<p><code class="xref py py-class docutils literal notranslate"><span class="pre">Attr</span></code> 继承自 <code class="xref py py-class docutils literal notranslate"><span class="pre">Node</span></code>,因此会继承其全部属性。</p>
|
||
<dl class="attribute">
|
||
<dt id="xml.dom.Attr.name">
|
||
<code class="sig-prename descclassname">Attr.</code><code class="sig-name descname">name</code><a class="headerlink" href="#xml.dom.Attr.name" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>属性名称。 在使用命名空间的文档中可能会包括冒号。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="attribute">
|
||
<dt id="xml.dom.Attr.localName">
|
||
<code class="sig-prename descclassname">Attr.</code><code class="sig-name descname">localName</code><a class="headerlink" href="#xml.dom.Attr.localName" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>名称在冒号之后的部分,如果有的话,否则为完整名称。 这是个只读属性。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="attribute">
|
||
<dt id="xml.dom.Attr.prefix">
|
||
<code class="sig-prename descclassname">Attr.</code><code class="sig-name descname">prefix</code><a class="headerlink" href="#xml.dom.Attr.prefix" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>名称在冒号之前的部分,如果有冒号的话,否则为空字符串。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="attribute">
|
||
<dt id="xml.dom.Attr.value">
|
||
<code class="sig-prename descclassname">Attr.</code><code class="sig-name descname">value</code><a class="headerlink" href="#xml.dom.Attr.value" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>属性的文本值。 这与 <code class="xref py py-attr docutils literal notranslate"><span class="pre">nodeValue</span></code> 属性同义。</p>
|
||
</dd></dl>
|
||
|
||
</section>
|
||
<section id="namednodemap-objects">
|
||
<span id="dom-attributelist-objects"></span><h3>NamedNodeMap 对象<a class="headerlink" href="#namednodemap-objects" title="永久链接至标题">¶</a></h3>
|
||
<p><code class="xref py py-class docutils literal notranslate"><span class="pre">NamedNodeMap</span></code> <em>不是</em> 继承自 <code class="xref py py-class docutils literal notranslate"><span class="pre">Node</span></code>。</p>
|
||
<dl class="attribute">
|
||
<dt id="xml.dom.NamedNodeMap.length">
|
||
<code class="sig-prename descclassname">NamedNodeMap.</code><code class="sig-name descname">length</code><a class="headerlink" href="#xml.dom.NamedNodeMap.length" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>属性列表的长度。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="method">
|
||
<dt id="xml.dom.NamedNodeMap.item">
|
||
<code class="sig-prename descclassname">NamedNodeMap.</code><code class="sig-name descname">item</code><span class="sig-paren">(</span><em class="sig-param">index</em><span class="sig-paren">)</span><a class="headerlink" href="#xml.dom.NamedNodeMap.item" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>返回特定带有索引号的属性。 获取属性的顺序是强制规定的,但在 DOM 的生命期内会保持一致。 其中每一项均为属性节点。 可使用 <code class="xref py py-attr docutils literal notranslate"><span class="pre">value</span></code> 属性获取其值。</p>
|
||
</dd></dl>
|
||
|
||
<p>还有一些试验性方法给予这个类更多的映射行为。 你可以使用这些方法或者使用 <code class="xref py py-class docutils literal notranslate"><span class="pre">Element</span></code> 对象上标准化的 <code class="xref py py-meth docutils literal notranslate"><span class="pre">getAttribute*()</span></code> 方法族。</p>
|
||
</section>
|
||
<section id="comment-objects">
|
||
<span id="dom-comment-objects"></span><h3>注释对象<a class="headerlink" href="#comment-objects" title="永久链接至标题">¶</a></h3>
|
||
<p><code class="xref py py-class docutils literal notranslate"><span class="pre">Comment</span></code> 代表 XML 文档中的注释。 它是 <code class="xref py py-class docutils literal notranslate"><span class="pre">Node</span></code> 的子类,但不能拥有下级节点。</p>
|
||
<dl class="attribute">
|
||
<dt id="xml.dom.Comment.data">
|
||
<code class="sig-prename descclassname">Comment.</code><code class="sig-name descname">data</code><a class="headerlink" href="#xml.dom.Comment.data" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>注释的内容是一个字符串。 该属性包含在开头 <code class="docutils literal notranslate"><span class="pre"><!-</span></code><code class="docutils literal notranslate"><span class="pre">-</span></code> 和末尾 <code class="docutils literal notranslate"><span class="pre">-</span></code><code class="docutils literal notranslate"><span class="pre">-></span></code> 之间的所有字符,但不包括这两个符号。</p>
|
||
</dd></dl>
|
||
|
||
</section>
|
||
<section id="text-and-cdatasection-objects">
|
||
<span id="dom-text-objects"></span><h3>Text 和 CDATASection 对象<a class="headerlink" href="#text-and-cdatasection-objects" title="永久链接至标题">¶</a></h3>
|
||
<p><code class="xref py py-class docutils literal notranslate"><span class="pre">Text</span></code> 接口代表 XML 文档中的文本。 如果解析器和 DOM 实现支持 DOM 的 XML 扩展,则包裹在 CDATA 标记的节中的部分会被存储到 <code class="xref py py-class docutils literal notranslate"><span class="pre">CDATASection</span></code> 对象中。 这两个接口很相似,但是提供了不同的 <code class="xref py py-attr docutils literal notranslate"><span class="pre">nodeType</span></code> 属性值。</p>
|
||
<p>这些接口扩展了 <code class="xref py py-class docutils literal notranslate"><span class="pre">Node</span></code> 接口。 它们不能拥有下级节点。</p>
|
||
<dl class="attribute">
|
||
<dt id="xml.dom.Text.data">
|
||
<code class="sig-prename descclassname">Text.</code><code class="sig-name descname">data</code><a class="headerlink" href="#xml.dom.Text.data" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>字符串形式的文本节点内容。</p>
|
||
</dd></dl>
|
||
|
||
<div class="admonition note">
|
||
<p class="admonition-title">注解</p>
|
||
<p><code class="xref py py-class docutils literal notranslate"><span class="pre">CDATASection</span></code> 节点的使用并不表示该节点代表一个完整的 CDATA 标记节,只是表示该节点的内容是 CDATA 节的一部分。 单个 CDATA 节可以由文档树中的多个节点来表示。 没有什么办法能确定两个相邻的 <code class="xref py py-class docutils literal notranslate"><span class="pre">CDATASection</span></code> 节点是否代表不同的 CDATA 标记节。</p>
|
||
</div>
|
||
</section>
|
||
<section id="processinginstruction-objects">
|
||
<span id="dom-pi-objects"></span><h3>ProcessingInstruction 对象<a class="headerlink" href="#processinginstruction-objects" title="永久链接至标题">¶</a></h3>
|
||
<p>代表 XML 文档中的处理指令。 它继承自 <code class="xref py py-class docutils literal notranslate"><span class="pre">Node</span></code> 接口并且不能拥有下级节点。</p>
|
||
<dl class="attribute">
|
||
<dt id="xml.dom.ProcessingInstruction.target">
|
||
<code class="sig-prename descclassname">ProcessingInstruction.</code><code class="sig-name descname">target</code><a class="headerlink" href="#xml.dom.ProcessingInstruction.target" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>处理指令的内容至第一个空格符为止。 这是个只读属性。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="attribute">
|
||
<dt id="xml.dom.ProcessingInstruction.data">
|
||
<code class="sig-prename descclassname">ProcessingInstruction.</code><code class="sig-name descname">data</code><a class="headerlink" href="#xml.dom.ProcessingInstruction.data" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>在第一个空格符之后的处理指令内容。</p>
|
||
</dd></dl>
|
||
|
||
</section>
|
||
<section id="exceptions">
|
||
<span id="dom-exceptions"></span><h3>异常<a class="headerlink" href="#exceptions" title="永久链接至标题">¶</a></h3>
|
||
<p>DOM 第 2 层级推荐定义一个异常 <a class="reference internal" href="#xml.dom.DOMException" title="xml.dom.DOMException"><code class="xref py py-exc docutils literal notranslate"><span class="pre">DOMException</span></code></a>,以及多个变量用来允许应用程序确定发生了何种错误。 <a class="reference internal" href="#xml.dom.DOMException" title="xml.dom.DOMException"><code class="xref py py-exc docutils literal notranslate"><span class="pre">DOMException</span></code></a> 实例带有 <a class="reference internal" href="code.html#module-code" title="code: Facilities to implement read-eval-print loops."><code class="xref py py-attr docutils literal notranslate"><span class="pre">code</span></code></a> 属性用来提供特定异常的对应值。</p>
|
||
<p>Python DOM 接口提供了一些常量,但还扩展了异常集以使 DOM 所定义的每个异常代码都存在特定的异常。 接口的具体实现必须引发正确的特定异常,它们各自带有正确的 <a class="reference internal" href="code.html#module-code" title="code: Facilities to implement read-eval-print loops."><code class="xref py py-attr docutils literal notranslate"><span class="pre">code</span></code></a> 属性值。</p>
|
||
<dl class="exception">
|
||
<dt id="xml.dom.DOMException">
|
||
<em class="property">exception </em><code class="sig-prename descclassname">xml.dom.</code><code class="sig-name descname">DOMException</code><a class="headerlink" href="#xml.dom.DOMException" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>所有特定 DOM 异常所使用的异常基类。 该异常类不可被直接实例化。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="exception">
|
||
<dt id="xml.dom.DomstringSizeErr">
|
||
<em class="property">exception </em><code class="sig-prename descclassname">xml.dom.</code><code class="sig-name descname">DomstringSizeErr</code><a class="headerlink" href="#xml.dom.DomstringSizeErr" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>当指定范围的文本不能适配一个字符串时被引发。 此异常在 Python DOM 实现中尚不可用,但可从不是以 Python 编写的 DOM 实现中接收。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="exception">
|
||
<dt id="xml.dom.HierarchyRequestErr">
|
||
<em class="property">exception </em><code class="sig-prename descclassname">xml.dom.</code><code class="sig-name descname">HierarchyRequestErr</code><a class="headerlink" href="#xml.dom.HierarchyRequestErr" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>当尝试插入一个节点但该节点类型不被允许时被引发。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="exception">
|
||
<dt id="xml.dom.IndexSizeErr">
|
||
<em class="property">exception </em><code class="sig-prename descclassname">xml.dom.</code><code class="sig-name descname">IndexSizeErr</code><a class="headerlink" href="#xml.dom.IndexSizeErr" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>当一个方法的索引或大小参数为负值或超出允许的值范围时被引发。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="exception">
|
||
<dt id="xml.dom.InuseAttributeErr">
|
||
<em class="property">exception </em><code class="sig-prename descclassname">xml.dom.</code><code class="sig-name descname">InuseAttributeErr</code><a class="headerlink" href="#xml.dom.InuseAttributeErr" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>当尝试插入一个 <code class="xref py py-class docutils literal notranslate"><span class="pre">Attr</span></code> 节点但该节点已存在于文档中的某处时被引发。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="exception">
|
||
<dt id="xml.dom.InvalidAccessErr">
|
||
<em class="property">exception </em><code class="sig-prename descclassname">xml.dom.</code><code class="sig-name descname">InvalidAccessErr</code><a class="headerlink" href="#xml.dom.InvalidAccessErr" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>当某个参数或操作在底层对象中不受支持时被引发。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="exception">
|
||
<dt id="xml.dom.InvalidCharacterErr">
|
||
<em class="property">exception </em><code class="sig-prename descclassname">xml.dom.</code><code class="sig-name descname">InvalidCharacterErr</code><a class="headerlink" href="#xml.dom.InvalidCharacterErr" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>当某个字符串参数包含的字符在使用它的上下文中不被 XML 1.0 标准建议所允许时引发。 例如,尝试创建一个元素类型名称中带有空格的 <code class="xref py py-class docutils literal notranslate"><span class="pre">Element</span></code> 节点将导致此错误被引发。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="exception">
|
||
<dt id="xml.dom.InvalidModificationErr">
|
||
<em class="property">exception </em><code class="sig-prename descclassname">xml.dom.</code><code class="sig-name descname">InvalidModificationErr</code><a class="headerlink" href="#xml.dom.InvalidModificationErr" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>当尝试修改某个节点的类型时被引发。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="exception">
|
||
<dt id="xml.dom.InvalidStateErr">
|
||
<em class="property">exception </em><code class="sig-prename descclassname">xml.dom.</code><code class="sig-name descname">InvalidStateErr</code><a class="headerlink" href="#xml.dom.InvalidStateErr" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>当尝试使用未定义或不再可用的的对象时被引发。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="exception">
|
||
<dt id="xml.dom.NamespaceErr">
|
||
<em class="property">exception </em><code class="sig-prename descclassname">xml.dom.</code><code class="sig-name descname">NamespaceErr</code><a class="headerlink" href="#xml.dom.NamespaceErr" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>如果试图以 <a class="reference external" href="https://www.w3.org/TR/REC-xml-names/">XML 中的命名空间</a> 建议所不允许的方式修改任何对象,则会引发此异常。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="exception">
|
||
<dt id="xml.dom.NotFoundErr">
|
||
<em class="property">exception </em><code class="sig-prename descclassname">xml.dom.</code><code class="sig-name descname">NotFoundErr</code><a class="headerlink" href="#xml.dom.NotFoundErr" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>当某个节点不存在于被引用的上下文中时引发的异常。 例如,<code class="xref py py-meth docutils literal notranslate"><span class="pre">NamedNodeMap.removeNamedItem()</span></code> 将在所传入的节点不在于于映射中时引发此异常。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="exception">
|
||
<dt id="xml.dom.NotSupportedErr">
|
||
<em class="property">exception </em><code class="sig-prename descclassname">xml.dom.</code><code class="sig-name descname">NotSupportedErr</code><a class="headerlink" href="#xml.dom.NotSupportedErr" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>当具体实现不支持所请求的对象类型或操作时被引发。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="exception">
|
||
<dt id="xml.dom.NoDataAllowedErr">
|
||
<em class="property">exception </em><code class="sig-prename descclassname">xml.dom.</code><code class="sig-name descname">NoDataAllowedErr</code><a class="headerlink" href="#xml.dom.NoDataAllowedErr" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>当为某个不支持数据 的节点指定数据时被引发。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="exception">
|
||
<dt id="xml.dom.NoModificationAllowedErr">
|
||
<em class="property">exception </em><code class="sig-prename descclassname">xml.dom.</code><code class="sig-name descname">NoModificationAllowedErr</code><a class="headerlink" href="#xml.dom.NoModificationAllowedErr" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>当尝试修改某个不允许修改的对象(例如只读节点)时被引发。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="exception">
|
||
<dt id="xml.dom.SyntaxErr">
|
||
<em class="property">exception </em><code class="sig-prename descclassname">xml.dom.</code><code class="sig-name descname">SyntaxErr</code><a class="headerlink" href="#xml.dom.SyntaxErr" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>当指定了无效或非法的字符串时被引发。</p>
|
||
</dd></dl>
|
||
|
||
<dl class="exception">
|
||
<dt id="xml.dom.WrongDocumentErr">
|
||
<em class="property">exception </em><code class="sig-prename descclassname">xml.dom.</code><code class="sig-name descname">WrongDocumentErr</code><a class="headerlink" href="#xml.dom.WrongDocumentErr" title="永久链接至目标">¶</a></dt>
|
||
<dd><p>当将某个节点插入非其当前所属的另一个文档,并且具体实现不支持从一个文档向一个文档迁移节点时被引发。</p>
|
||
</dd></dl>
|
||
|
||
<p>DOM 建议映射中针对上述异常而定义的异常代码如下表所示:</p>
|
||
<table class="docutils align-default">
|
||
<colgroup>
|
||
<col style="width: 54%" />
|
||
<col style="width: 46%" />
|
||
</colgroup>
|
||
<thead>
|
||
<tr class="row-odd"><th class="head"><p>常数</p></th>
|
||
<th class="head"><p>异常</p></th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr class="row-even"><td><p><code class="xref py py-const docutils literal notranslate"><span class="pre">DOMSTRING_SIZE_ERR</span></code></p></td>
|
||
<td><p><a class="reference internal" href="#xml.dom.DomstringSizeErr" title="xml.dom.DomstringSizeErr"><code class="xref py py-exc docutils literal notranslate"><span class="pre">DomstringSizeErr</span></code></a></p></td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><code class="xref py py-const docutils literal notranslate"><span class="pre">HIERARCHY_REQUEST_ERR</span></code></p></td>
|
||
<td><p><a class="reference internal" href="#xml.dom.HierarchyRequestErr" title="xml.dom.HierarchyRequestErr"><code class="xref py py-exc docutils literal notranslate"><span class="pre">HierarchyRequestErr</span></code></a></p></td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><code class="xref py py-const docutils literal notranslate"><span class="pre">INDEX_SIZE_ERR</span></code></p></td>
|
||
<td><p><a class="reference internal" href="#xml.dom.IndexSizeErr" title="xml.dom.IndexSizeErr"><code class="xref py py-exc docutils literal notranslate"><span class="pre">IndexSizeErr</span></code></a></p></td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><code class="xref py py-const docutils literal notranslate"><span class="pre">INUSE_ATTRIBUTE_ERR</span></code></p></td>
|
||
<td><p><a class="reference internal" href="#xml.dom.InuseAttributeErr" title="xml.dom.InuseAttributeErr"><code class="xref py py-exc docutils literal notranslate"><span class="pre">InuseAttributeErr</span></code></a></p></td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><code class="xref py py-const docutils literal notranslate"><span class="pre">INVALID_ACCESS_ERR</span></code></p></td>
|
||
<td><p><a class="reference internal" href="#xml.dom.InvalidAccessErr" title="xml.dom.InvalidAccessErr"><code class="xref py py-exc docutils literal notranslate"><span class="pre">InvalidAccessErr</span></code></a></p></td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><code class="xref py py-const docutils literal notranslate"><span class="pre">INVALID_CHARACTER_ERR</span></code></p></td>
|
||
<td><p><a class="reference internal" href="#xml.dom.InvalidCharacterErr" title="xml.dom.InvalidCharacterErr"><code class="xref py py-exc docutils literal notranslate"><span class="pre">InvalidCharacterErr</span></code></a></p></td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><code class="xref py py-const docutils literal notranslate"><span class="pre">INVALID_MODIFICATION_ERR</span></code></p></td>
|
||
<td><p><a class="reference internal" href="#xml.dom.InvalidModificationErr" title="xml.dom.InvalidModificationErr"><code class="xref py py-exc docutils literal notranslate"><span class="pre">InvalidModificationErr</span></code></a></p></td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><code class="xref py py-const docutils literal notranslate"><span class="pre">INVALID_STATE_ERR</span></code></p></td>
|
||
<td><p><a class="reference internal" href="#xml.dom.InvalidStateErr" title="xml.dom.InvalidStateErr"><code class="xref py py-exc docutils literal notranslate"><span class="pre">InvalidStateErr</span></code></a></p></td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><code class="xref py py-const docutils literal notranslate"><span class="pre">NAMESPACE_ERR</span></code></p></td>
|
||
<td><p><a class="reference internal" href="#xml.dom.NamespaceErr" title="xml.dom.NamespaceErr"><code class="xref py py-exc docutils literal notranslate"><span class="pre">NamespaceErr</span></code></a></p></td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><code class="xref py py-const docutils literal notranslate"><span class="pre">NOT_FOUND_ERR</span></code></p></td>
|
||
<td><p><a class="reference internal" href="#xml.dom.NotFoundErr" title="xml.dom.NotFoundErr"><code class="xref py py-exc docutils literal notranslate"><span class="pre">NotFoundErr</span></code></a></p></td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><code class="xref py py-const docutils literal notranslate"><span class="pre">NOT_SUPPORTED_ERR</span></code></p></td>
|
||
<td><p><a class="reference internal" href="#xml.dom.NotSupportedErr" title="xml.dom.NotSupportedErr"><code class="xref py py-exc docutils literal notranslate"><span class="pre">NotSupportedErr</span></code></a></p></td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><code class="xref py py-const docutils literal notranslate"><span class="pre">NO_DATA_ALLOWED_ERR</span></code></p></td>
|
||
<td><p><a class="reference internal" href="#xml.dom.NoDataAllowedErr" title="xml.dom.NoDataAllowedErr"><code class="xref py py-exc docutils literal notranslate"><span class="pre">NoDataAllowedErr</span></code></a></p></td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><code class="xref py py-const docutils literal notranslate"><span class="pre">NO_MODIFICATION_ALLOWED_ERR</span></code></p></td>
|
||
<td><p><a class="reference internal" href="#xml.dom.NoModificationAllowedErr" title="xml.dom.NoModificationAllowedErr"><code class="xref py py-exc docutils literal notranslate"><span class="pre">NoModificationAllowedErr</span></code></a></p></td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><code class="xref py py-const docutils literal notranslate"><span class="pre">SYNTAX_ERR</span></code></p></td>
|
||
<td><p><a class="reference internal" href="#xml.dom.SyntaxErr" title="xml.dom.SyntaxErr"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SyntaxErr</span></code></a></p></td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><code class="xref py py-const docutils literal notranslate"><span class="pre">WRONG_DOCUMENT_ERR</span></code></p></td>
|
||
<td><p><a class="reference internal" href="#xml.dom.WrongDocumentErr" title="xml.dom.WrongDocumentErr"><code class="xref py py-exc docutils literal notranslate"><span class="pre">WrongDocumentErr</span></code></a></p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</section>
|
||
</section>
|
||
<section id="conformance">
|
||
<span id="dom-conformance"></span><h2>一致性<a class="headerlink" href="#conformance" title="永久链接至标题">¶</a></h2>
|
||
<p>本节描述了 Python DOM API、W3C DOM 建议以及 Python 的 OMG IDL 映射之间的一致性要求和关系。</p>
|
||
<section id="type-mapping">
|
||
<span id="dom-type-mapping"></span><h3>类型映射<a class="headerlink" href="#type-mapping" title="永久链接至标题">¶</a></h3>
|
||
<p>将根据下表,将DOM规范中使用的IDL类型映射为Python类型。</p>
|
||
<table class="docutils align-default">
|
||
<colgroup>
|
||
<col style="width: 30%" />
|
||
<col style="width: 70%" />
|
||
</colgroup>
|
||
<thead>
|
||
<tr class="row-odd"><th class="head"><p>IDL 类型</p></th>
|
||
<th class="head"><p>Python 类型</p></th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">boolean</span></code></p></td>
|
||
<td><p><code class="docutils literal notranslate"><span class="pre">bool</span></code> 或 <code class="docutils literal notranslate"><span class="pre">int</span></code></p></td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">int</span></code></p></td>
|
||
<td><p><code class="docutils literal notranslate"><span class="pre">int</span></code></p></td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">long</span> <span class="pre">int</span></code></p></td>
|
||
<td><p><code class="docutils literal notranslate"><span class="pre">int</span></code></p></td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">unsigned</span> <span class="pre">int</span></code></p></td>
|
||
<td><p><code class="docutils literal notranslate"><span class="pre">int</span></code></p></td>
|
||
</tr>
|
||
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">DOMString</span></code></p></td>
|
||
<td><p><code class="docutils literal notranslate"><span class="pre">str</span></code> 或 <code class="docutils literal notranslate"><span class="pre">bytes</span></code></p></td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">null</span></code></p></td>
|
||
<td><p><code class="docutils literal notranslate"><span class="pre">None</span></code></p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</section>
|
||
<section id="accessor-methods">
|
||
<span id="dom-accessor-methods"></span><h3>访问器方法<a class="headerlink" href="#accessor-methods" title="永久链接至标题">¶</a></h3>
|
||
<p>从 OMG IDL 到 Python 的映射以类似于 Java 映射的方式定义了针对 IDL <code class="docutils literal notranslate"><span class="pre">attribute</span></code> 声明的访问器函数。 映射以下 IDL 声明</p>
|
||
<div class="highlight-python3 notranslate"><div class="highlight"><pre><span></span><span class="n">readonly</span> <span class="n">attribute</span> <span class="n">string</span> <span class="n">someValue</span><span class="p">;</span>
|
||
<span class="n">attribute</span> <span class="n">string</span> <span class="n">anotherValue</span><span class="p">;</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>会产生三个访问器函数: <code class="xref py py-attr docutils literal notranslate"><span class="pre">someValue</span></code> 的 "get" 方法 (<code class="xref py py-meth docutils literal notranslate"><span class="pre">_get_someValue()</span></code>),以及 <code class="xref py py-attr docutils literal notranslate"><span class="pre">anotherValue</span></code> 的 "get" 和 "set" 方法 (<code class="xref py py-meth docutils literal notranslate"><span class="pre">_get_anotherValue()</span></code> 和 <code class="xref py py-meth docutils literal notranslate"><span class="pre">_set_anotherValue()</span></code>)。 特别地,该映射不要求 IDL 属性像普通 Python 属性那样可访问: <code class="docutils literal notranslate"><span class="pre">object.someValue</span></code> <em>并非</em> 必须可用,并可能引发 <a class="reference internal" href="exceptions.html#AttributeError" title="AttributeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">AttributeError</span></code></a>。</p>
|
||
<p>但是,Python DOM API 则 <em>确实</em> 要求普通属性访问可用。 这意味着由 Python IDL 解译器生成的典型代理有可能会不可用,如果 DOM 对象是通过 CORBA 来访问则在客户端可能需要有包装对象。 虽然这确实要求为 CORBA DOM 客户端进行额外的考虑,但具有从 Python 通过 CORBA 使用 DOM 经验的实现并不会认为这是个问题。 已经声明了 <code class="docutils literal notranslate"><span class="pre">readonly</span></code> 的属性不必在所有 DOM 实现中限制写入访问。</p>
|
||
<p>在 Python DOM API 中,访问器函数不是必须的。 如果提供,则它们应当采用由 Python IDL 映射所定义的形式,但这些方法会被认为不必要,因为这些属性可以从 Python 直接访问。 永远都不要为 <code class="docutils literal notranslate"><span class="pre">readonly</span></code> 属性提供 "set" 访问器。</p>
|
||
<p>IDL 定义没有完全体现 W3C DOM API 的要求,如特定对象的概念,又如 <code class="xref py py-meth docutils literal notranslate"><span class="pre">getElementsByTagName()</span></code> 的返回值为 "live" 等。 Python DOM API 并不强制具体实现执行这些要求。</p>
|
||
</section>
|
||
</section>
|
||
</section>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
|
||
<div class="sphinxsidebarwrapper">
|
||
<h3><a href="../contents.html">目录</a></h3>
|
||
<ul>
|
||
<li><a class="reference internal" href="#"><code class="xref py py-mod docutils literal notranslate"><span class="pre">xml.dom</span></code> --- 文档对象模型 API</a><ul>
|
||
<li><a class="reference internal" href="#module-contents">模块内容</a></li>
|
||
<li><a class="reference internal" href="#objects-in-the-dom">DOM 中的对象</a><ul>
|
||
<li><a class="reference internal" href="#domimplementation-objects">DOMImplementation 对象</a></li>
|
||
<li><a class="reference internal" href="#node-objects">节点对象</a></li>
|
||
<li><a class="reference internal" href="#nodelist-objects">节点列表对象</a></li>
|
||
<li><a class="reference internal" href="#documenttype-objects">文档类型对象</a></li>
|
||
<li><a class="reference internal" href="#document-objects">文档对象</a></li>
|
||
<li><a class="reference internal" href="#element-objects">元素对象</a></li>
|
||
<li><a class="reference internal" href="#attr-objects">Attr 对象</a></li>
|
||
<li><a class="reference internal" href="#namednodemap-objects">NamedNodeMap 对象</a></li>
|
||
<li><a class="reference internal" href="#comment-objects">注释对象</a></li>
|
||
<li><a class="reference internal" href="#text-and-cdatasection-objects">Text 和 CDATASection 对象</a></li>
|
||
<li><a class="reference internal" href="#processinginstruction-objects">ProcessingInstruction 对象</a></li>
|
||
<li><a class="reference internal" href="#exceptions">异常</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a class="reference internal" href="#conformance">一致性</a><ul>
|
||
<li><a class="reference internal" href="#type-mapping">类型映射</a></li>
|
||
<li><a class="reference internal" href="#accessor-methods">访问器方法</a></li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
|
||
<h4>上一个主题</h4>
|
||
<p class="topless"><a href="xml.etree.elementtree.html"
|
||
title="上一章"><code class="xref py py-mod docutils literal notranslate"><span class="pre">xml.etree.ElementTree</span></code> --- ElementTree XML API</a></p>
|
||
<h4>下一个主题</h4>
|
||
<p class="topless"><a href="xml.dom.minidom.html"
|
||
title="下一章"><code class="xref py py-mod docutils literal notranslate"><span class="pre">xml.dom.minidom</span></code> --- 最小化的 DOM 实现</a></p>
|
||
<div role="note" aria-label="source link">
|
||
<h3>本页</h3>
|
||
<ul class="this-page-menu">
|
||
<li><a href="../bugs.html">报告 Bug</a></li>
|
||
<li>
|
||
<a href="https://github.com/python/cpython/blob/3.8/Doc/library/xml.dom.rst"
|
||
rel="nofollow">显示源代码
|
||
</a>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="clearer"></div>
|
||
</div>
|
||
<div class="related" role="navigation" aria-label="related navigation">
|
||
<h3>导航</h3>
|
||
<ul>
|
||
<li class="right" style="margin-right: 10px">
|
||
<a href="../genindex.html" title="总目录"
|
||
>索引</a></li>
|
||
<li class="right" >
|
||
<a href="../py-modindex.html" title="Python 模块索引"
|
||
>模块</a> |</li>
|
||
<li class="right" >
|
||
<a href="xml.dom.minidom.html" title="xml.dom.minidom --- 最小化的 DOM 实现"
|
||
>下一页</a> |</li>
|
||
<li class="right" >
|
||
<a href="xml.etree.elementtree.html" title="xml.etree.ElementTree --- ElementTree XML API"
|
||
>上一页</a> |</li>
|
||
|
||
<li><img src="../_static/py.svg" alt="python logo" style="vertical-align: middle; margin-top: -1px"/></li>
|
||
<li><a href="https://www.python.org/">Python</a> »</li>
|
||
<li class="switchers">
|
||
<div class="language_switcher_placeholder"></div>
|
||
<div class="version_switcher_placeholder"></div>
|
||
</li>
|
||
<li>
|
||
|
||
</li>
|
||
<li id="cpython-language-and-version">
|
||
<a href="../index.html">3.8.20 Documentation</a> »
|
||
</li>
|
||
|
||
<li class="nav-item nav-item-1"><a href="index.html" >Python 标准库</a> »</li>
|
||
<li class="nav-item nav-item-2"><a href="markup.html" >结构化标记处理工具</a> »</li>
|
||
<li class="right">
|
||
|
||
|
||
<div class="inline-search" role="search">
|
||
<form class="inline-search" action="../search.html" method="get">
|
||
<input placeholder="快速搜索" aria-label="快速搜索" type="text" name="q" />
|
||
<input type="submit" value="转向" />
|
||
<input type="hidden" name="check_keywords" value="yes" />
|
||
<input type="hidden" name="area" value="default" />
|
||
</form>
|
||
</div>
|
||
|
|
||
</li>
|
||
|
||
</ul>
|
||
</div>
|
||
<div class="footer">
|
||
© <a href="../copyright.html">版权所有</a> 2001-2024, Python Software Foundation.
|
||
<br />
|
||
This page is licensed under the Python Software Foundation License Version 2.
|
||
<br />
|
||
Examples, recipes, and other code in the documentation are additionally licensed under the Zero Clause BSD License.
|
||
<br />
|
||
|
||
<br />
|
||
|
||
The Python Software Foundation is a non-profit corporation.
|
||
<a href="https://www.python.org/psf/donations/">Please donate.</a>
|
||
<br />
|
||
<br />
|
||
|
||
最后更新于 12月 09, 2024.
|
||
<a href="https://docs.python.org/3/bugs.html">Found a bug</a>?
|
||
<br />
|
||
|
||
Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 2.4.4.
|
||
</div>
|
||
|
||
</body>
|
||
</html> |