XML DOM类中文翻译
主要在这里纠结了半天,class太多,在php .net上面看manual看得想吐血,于是把主要的几个类翻译了,方便自己,也说不定能方便他人,当然如有翻译错误,请务必指正
DOMDocument类(继承于DOMNode)
1.类简介:代表整个html或xml文档,作为文档树的根。
2.类属性:
readonly public string $actualEncoding ;//已经过时,等于encoding
readonly public DOMConfiguration $config ;//已过时,DOMDocument::normalizeDocument()被调用时配置被使用
readonly public DOMDocumentType $doctype ;//文档相关的申明
readonly public DOMElement $documentElement ;//很方便地取得文档的根节点
public string $documentURI ;//文档的来源,未定义时为空
public string $encoding ;//xml文档的编码,注意此属性在DOM第三等级中未定义,但是在操作xml文档的实现中的唯一方式
public bool $formatOutput ;//是否在输出到浏览器时显示空格和tab
readonly public DOMImplementation $implementation ;//用DOMImplementation对象来处理文档
public bool $preserveWhiteSpace = true ;//不去除多余的空格,默认为TRUE
public bool $recover ;//专有!允许recovery模式,比如试图解析结构不正规的文档,此属性只被libxml特有,不是DOM规范的一部分!
public bool $resolveExternals ;//从doctype声明中载入外部声明时设为true。当你的xml文档包含字符实体时非常有用
public bool $standalone ;//弃用
public bool $strictErrorChecking = true ;//发生错误时抛出DOMException异常。默认为true
public bool $substituteEntities ;//专有!是否要替换实体?(不懂。。。)此属性是libxml特有,非DOM规范的一部分!
public bool $validateOnParse = false ;//载入并且验证DTD,默认为false
public string $version ;//弃用,同xmlVersion
readonly public string $xmlEncoding ;//作为xml声明的一部分,表示xml文档的编码。当未指定或者未知时值为null,如当此文档在内存中被创建时
public bool $xmlStandalone ;//作为xml声明的一部分,该属性指定该文档是否是独立的,当未指定时该值为FALSE
public string $xmlVersion ;//作为xml声明的一部分,此属性指定了xml文档的版本号,如果申明未指定同时该文档支持xml特性,该值默认为'1.0'。
3.类方法
public __construct ([ string $version [, string $encoding ]] )//新建一个DOMDocument对象
public DOMAttr createAttribute ( string $name )//新建一个属性
public DOMAttr createAttributeNS ( string $namespaceURI , string $qualifiedName )//创建一个相关联的命名空间的新属性节点
public DOMCDATASection createCDATASection ( string $data )//新建一个cdata节点
public DOMComment createComment ( string $data )//新建一个comment节点
public DOMDocumentFragment createDocumentFragment ( void )//新建一个文档片段
public DOMElement createElement ( string $name [, string $value ] )//新建一个element节点
public DOMElement createElementNS ( string $namespaceURI , string $qualifiedName [, string $value ] )//创建一个相关联的命名空间的element节点
public DOMEntityReference createEntityReference ( string $name )//创建一个entity reference节点
public DOMProcessingInstruction createProcessingInstruction ( string $target [, string $data ] )//创建一个PI节点
public DOMText createTextNode ( string $content )//创建一个text节点
public DOMElement getElementById ( string $elementId )//寻找一个特定id的节点
public DOMNodeList getElementsByTagName ( string $name )//寻找指定的tag名的所有元素
public DOMNodeList getElementsByTagNameNS ( string $namespaceURI , string $localName )//在特定的命名空间中寻找指定的tag名的所有元素
public DOMNode importNode ( DOMNode $importedNode [, bool $deep ] )//导入节点到当前文档
public mixed load ( string $filename [, int $options = 0 ] )//从文件中载入一个xml
public bool loadHTML ( string $source [, int $options = 0 ] )//从一个字符串中载如html
public bool loadHTMLFile ( string $filename [, int $options = 0 ] )//从一个文件中载入html
public mixed loadXML ( string $source [, int $options = 0 ] )//从一个字符串中载入xml
public void normalizeDocument ( void )//正常化一个文档?看了此方法的定义,曰:这个方法扮演着这么一种角色:保存并且重新载入该文档,让该文章以一种”正常“的形式输出
public bool registerNodeClass ( string $baseclass , string $extendedclass )//用来创建一个基本节点类型时注册一个扩展类
public bool relaxNGValidate ( string $filename )//文档中执行relaxNG验证
public bool relaxNGValidateSource ( string $source )//同上
public int save ( string $filename [, int $options ] )//保存xml到文件
public string saveHTML ([ DOMNode $node = NULL ] )//按照html形式保存内部文档到字符串
public int saveHTMLFile ( string $filename )//按照html格式将内部文档输出到文档
public string saveXML ([ DOMNode $node [, int $options ]] )//输出内部xml树到字符串
public bool schemaValidate ( string $filename [, int $flags ] )//基于一个结构秒速验证文档
public bool schemaValidateSource ( string $source [, int $flags ] )//同上
public bool validate ( void )//基于DTD验证文档
public int xinclude ([ int $options ] )//在DOMDocument对象中替换Xincludes
DOMNode类
1.类属性:
/* Properties */
public readonly string $nodeName ;//返回当前节点最准确的名称
public string $nodeValue ;//根据其类型返回此节点的值
public readonly int $nodeType ;//取得该结点的类型,详见预定义常量XML_xxx_NODEconstants查看具体类型
public readonly DOMNode $parentNode ;//该结点的父节点
public readonly DOMNodeList $childNodes ;//包含该结点的所有孩子节点的DOMNodeList。如果没有孩子节点,则为空DOMNodeList
public readonly DOMNode $firstChild ;//该结点的第一个孩子节点,如果没有则为null
public readonly DOMNode $lastChild ;//该结点的最后一个孩子节点,如果没有则为null
public readonly DOMNode $previousSibling ;//与该结点前一个兄弟节点,如果没有则为null
public readonly DOMNode $nextSibling ;//该结点的后一个兄弟节点,如果没有则为null
public readonly DOMNamedNodeMap $attributes ;//如果该结点为(DOMElement对象)则为该结点的属性集的DOMNamedNodeMap对象,否则null
public readonly DOMDocument $ownerDocument ;//返回与该节点相关联的DOMDocument对象
public readonly string $namespaceURI ;//该节点的URL命名空间,如果未指定则为null
public string $prefix ;//该节点的前缀命名空间,如果未指定则为null
public readonly string $localName ;//返回该节点有效名(qualified name)的本地部分
public readonly string $baseURI ;//该节点的绝对路径URL,当该实现不能包含绝对路径URL时返回null
public readonly string $textContent ;//返回该节点以及子孙结点的文本内容
备注:DOM扩展使用UTF-8编码,文本基于ISO-8859-1编码的请使用uft8_encode()和utf8_decode()函数,其它编码请使用Iconv();
2.类方法
public DOMNode appendChild ( DOMNode $newnode )//在该结点的最后一个孩子节点后新增一个孩子节点
public string C14N ([ bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes ]]]] )//规范结点到一个字符串
public int C14NFile ( string $uri [, bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes ]]]] )//规范节点到文件
public DOMNode cloneNode ([ bool $deep ] )//克隆一个结点
public int getLineNo ( void )//取得某结点的行号
public string getNodePath ( void )//取得某节点的XPATH
public bool hasAttributes ( void )//检查某节点是否设置attributes
public bool hasChildNodes ( void )//检查某节点是否有孩子节点
public DOMNode insertBefore ( DOMNode $newnode [, DOMNode $refnode ] )//在引用结点之前添加一个孩子节点
public bool isDefaultNamespace ( string $namespaceURI )//检查指定的namespaceURL是否是默认的命名空间
public bool isSameNode ( DOMNode $node )//检查两个结点中是否有相同的结点
public bool isSupported ( string $feature , string $version )//检查某特性在指定版本中是否支持
public string lookupNamespaceURI ( string $prefix )//基于前缀取得结点的命名空间URL
public string lookupPrefix ( string $namespaceURI )//基于namesapceURL取得结点的命名空间前缀
public void normalize ( void )//正常化结点
public DOMNode removeChild ( DOMNode $oldnode )//从孩子结点列表中删除孩子
public DOMNode replaceChild ( DOMNode $newnode , DOMNode $oldnode )//替换一个孩子
DOMNodeList类(继承于DOMNode)
1.类的属性:
readonly public int $length ;//NodeList里面包含的node个数
2.类的方法:
DOMNode DOMNodelist::item ( int $index )//根据索引取得相应的结点(从0到length-1)
DOMElement类(继承于DOMNode)
1.类的属性:
readonly public bool $schemaTypeInfo ;//未使用,为null
readonly public string $tagName ;//元素名称
2.类的方法:
public __construct ( string $name [, string $value [, string $namespaceURI ]] )//创建一个DOMElement对象
public string getAttribute ( string $name )//返回属性值
public DOMAttr getAttributeNode ( string $name )//返回属性节点
public DOMAttr getAttributeNodeNS ( string $namespaceURI , string $localName )//返回属性节点
public string getAttributeNS ( string $namespaceURI , string $localName )//返回属性值
public DOMNodeList getElementsByTagName ( string $name )//通过tagname取得元素集合
public DOMNodeList getElementsByTagNameNS ( string $namespaceURI , string $localName )//通过namespaceURI和localname取得元素集合
public bool hasAttribute ( string $name )//检查属性值是否存在
public bool hasAttributeNS ( string $namespaceURI , string $localName )//检查属性值是否存在
public bool removeAttribute ( string $name )//删除属性
public bool removeAttributeNode ( DOMAttr $oldnode )//删除属性
public bool removeAttributeNS ( string $namespaceURI , string $localName )//删除属性
public DOMAttr setAttribute ( string $name , string $value )//添加新属性
public DOMAttr setAttributeNode ( DOMAttr $attr )//添加新属性结点到元素
public DOMAttr setAttributeNodeNS ( DOMAttr $attr )//添加新属性结点到元素
public void setAttributeNS ( string $namespaceURI , string $qualifiedName , string $value )//添加新属性
public void setIdAttribute ( string $name , bool $isId )//通过ID给指定的名称申明属性值
public void setIdAttributeNode ( DOMAttr $attr , bool $isId )//通过ID给指定的结点申明属性值
public void setIdAttributeNS ( string $namespaceURI , string $localName , bool $isId )//通过ID给指定的localname和namespaceURL申明属性
DOMAttr类(继承于DOMNode)
1.类简介:DOMAttr表示DOMElement对象中的一个属性
2.类属性
public readonly string $name ;//属性的名称
public readonly DOMElement $ownerElement ;//那个元素包含该属性
public readonly bool $schemaTypeInfo ;//未定义,总为null
public readonly bool $specified ;//未定义,总为null
public string $value ;//属性的值
3.类方法
public __construct(string $name [,string $value]) //创建一个新的DOMAttr对象
public bool isId(void) //检查属性是否定义了ID
DOMCharacterData类(继承于DOMNode)
1.类简介:表示结点的字符数据。没有结点直接实现该类,二是通过其他结点继承
2.类属性
public string $data ;//该结点的内容
readonly public int $length ;//该节点内容的长度
3.类方法
void appendData(string $data)//在结点的字符数据末尾追加字符串
void deleteData(int $offset,int $count) //从节点处移除一个字符集合
void insertData(int $offset,string $data) //在指定的16bit单位偏移除新增一个字符串
void replaceData(int $offset,int $count,string $data) //在DOMCharterData结点内替换一个子串
string substringData(int $offset,int $count)//从节点内提取一定范围内的值
DOMText类(继承于DOMCharacterData)
1.类定义:DOMText类继承于DOMCharacterData类并且代表DomElement和DOMAttr类的文本内容
2.类属性:
readonly public string $wholeText ;//处理所有逻辑相邻(不是由Element,Comment或处理指令分离)的结点内容
3.类方法:
public __construct([string $value])//新建一个DOMText对象
public bool isWhitespaceInElementContent(void)//表明该文本结点是否含有白边(whitesapce)
public DOMText splitText(int $offset) //在指定位置将节点分割称两个节点
DOMXPath类
1.类定义:支持XPath1.0
2.类属性:
public DOMDocument $document;
3.类方法:
public __construct(DOMDocument $doc)//新建一个DOMXPath对象
public mixed evaluate(string $expression [,DOMNode $contextnode[,bool $registerNodeNS=true]]) //评估给定的XPath表达式,如果可能返回一个类型的结果
public DOMNodeList query(string $expression[,DOMNode $contextnode[,bool $registerNodeNS=true]]) //评估给定的XPath表达式
public bool registerNamespace(string $prefix,string $namespaceURI) //注册一个DOMXpath对象的namespace
public void DregisterPhpFunctions([mixed $restrict]) //注册一个php函数为XPath函数