module Xml
def self.load(file)
xml = LibXML::XML::Parser.file(file)
doc = xml.parse
root = doc.root
root.create_method
return doc.root
end
end
module LibXML
module XML
class Document
end
class Node
def create_method
hash = {}
self.children.each do |node|
next if node.blank?
next if node.name.blank?
key = node.name=="name" ? "g_#{node.name}" : node.name
hash[key].blank? ? (hash[key]=[node]) : (hash[key] << node)
self.class.send(:define_method,key){return get_attr(node)}#{sub_attr(node)}
end if self.child?
keys = hash.keys
keys.each do |key|
self.class.send(:define_method,key.pluralize){return get_attrs(hash[key])}#{sub_attr(node)}
end if !keys.blank?
end
def get_attrs(h)
arr = h.flatten
return h.flatten
end
def method_missing(name)
puts "error:#{name}______fantong.com"
end
def get_attr(attr)
attr.create_method if attr.child?
return attr
end
end
end
end
分享到:
相关推荐
除了基本的XML解析,LibXML2还支持其他高级特性,如SAX(Simple API for XML)解析、XML Schema验证、XML的网络I/O以及XML编码转换。开发者可以根据需求选择合适的接口来实现相应的功能。 总之,LibXML2是一个强大...
libxml2.dll for windows
This is libxml2, version 2.7.8, binary package for the native Win32/IA32 platform. The files in this package do not require any special installation steps. Extract the contents of the archive where...
- **XML解析**:支持SAX(Simple API for XML)和DOM(Document Object Model)两种解析模式。SAX是一种事件驱动的解析方法,适用于处理大型XML文档;DOM则将整个XML文档加载到内存中,便于进行全文搜索和修改。 -...
解析器能够识别XML语法,构建文档对象模型(DOM),或者以SAX(Simple API for XML)事件驱动方式处理文档。 2. **DOM支持**:DOM是一种树形数据结构,用于表示XML文档。Libxml2提供API,允许开发者遍历和修改DOM树...
它支持SAX(Simple API for XML)和DOM(Document Object Model)两种解析模式。SAX是一种事件驱动的解析方式,适用于处理大型XML文件,因为其内存占用较低;DOM则是将整个XML文档加载到内存中,形成一棵树形结构,...
**libxml2库详解** Libxml2是XML解析器库,由Gnome项目开发,它提供了广泛的XML处理功能,包括解析、序列化、XPath查询、XInclude处理、DTD验证等。这个库是开源的,遵循MIT许可证,因此可以在各种商业和非商业项目...
libxml是一个用来解析XML文档的函数库。它用C语言写成, 并且能为多种语言所调用,例如C语言,C++,XSH。C#, Python,Kylix/Delphi,Ruby,和PHP等。Perl中也可以使用XML::LibXML模块。它最初是为GNOME开发的项目,但...
LIBXML是Linux内核的一部分,它是一个开源的、跨平台的XML解析库,全称为“Libxml2”。这个库提供了一系列API(应用程序编程接口),使得开发者能够方便地处理XML文档,进行解析、验证、编码以及XPath查询等操作。在...
在Windows操作系统中,开发和运行某些程序,特别是涉及到XML处理的Ruby应用时,可能需要依赖于像libxml2这样的库。libxml2是用于解析、处理和操作XML文档的一个开源库,广泛应用于各种编程语言,包括Ruby。在这个...
Ubuntu11.10 libxml2-dev 安装包 libxml2_2.7.8.dfsg-4_i386.deb libxml2-dev_2.7.8.dfsg-4_i386.deb python-libxml2_2.7.8.dfsg-4_i386.deb zlib1g_1.2.3.4.dfsg-3ubuntu3_i386.deb zlib1g-dev_1.2.3.4.dfsg-3...
1. **XML解析**:libxml2提供了多种解析方式,包括SAX(Simple API for XML)和DOM(Document Object Model)模型。SAX是事件驱动的,适用于大文件;DOM则将整个XML文档加载到内存,方便进行查找和修改。 2. **...
1. **XML解析器**: 支持SAX(Simple API for XML)和DOM(Document Object Model)两种解析方式,能够高效地读取和解析XML文档。 2. **XPath支持**: 提供了完整的XPath 1.0实现,可以方便地查询XML文档中的节点。 3....
《深入理解libxml2在Python中的应用》 libxml2是一个强大的XML解析库,由Gnome项目开发并维护,广泛应用于各种操作系统环境,包括Linux、Windows以及Mac OS X等。这个名为"libxml2-2.9.7.tar.gz"的压缩包文件,包含...
**libxml2库详解** Libxml2是XML处理的一个强大且高效的开源库,它由Gnome项目维护,广泛应用于各种操作系统平台,包括Linux、Windows和macOS等。这个库提供了全面的功能,使得开发者能够轻松地在C语言环境中处理...
### C语言库libxml2实例详解 #### 一、引言 libxml2是一个功能强大的C语言XML处理库,能够高效地解析、处理XML文件。本文档旨在通过具体实例介绍libxml2的基本使用方法,帮助读者更好地理解如何利用libxml2进行XML...
4. **SAX(简单API for XML)**:除了DOM之外,LIBXML2还提供了SAX解析器,它是一种事件驱动的解析方式,适用于处理大型XML文件,因为它不需要将整个文档加载到内存中。 5. **HTML解析**:除了XML,LIBXML2也支持...
**iOS中的libxml库** LibXML是开源的XML解析库,它被广泛应用于各种操作系统,包括iOS。在iOS开发中,libxml库提供了一种高效且灵活的方式来处理XML文档,这对于那些需要解析或生成XML数据的应用来说至关重要。下面...
libxml rpm libxml rpm
libxml2