class Wiris::Xml

Constants

CData
Element
PCData

Public Class Methods

createDocument() click to toggle source
# File lib/src-generic/Xml.rb, line 148
def self.createDocument()
        return Xml.new REXML::Document.new
end
new(node) click to toggle source
# File lib/src-generic/Xml.rb, line 34
def initialize(node)
        @node =node
        @nodeType = node.node_type
        if node.class == REXML::CData
                @nodeType = :text
        end
        if (@nodeType == :text)
                @nodeName = :text
        elsif (@nodeType == :text)
                @nodeName = :text
        else
                @nodeName = node.name
        end

end
parse(xml) click to toggle source
# File lib/src-generic/Xml.rb, line 49
def self.parse(xml)
        return Xml.new REXML::Document.new xml
end

Public Instance Methods

addChild(x) click to toggle source
# File lib/src-generic/Xml.rb, line 126
def addChild(x)
        @node << x.node
end
attributes() click to toggle source
# File lib/src-generic/Xml.rb, line 74
def attributes()
    atts = Array.new;
    if @node.attributes.nil?
         return Iterator.new
    end

    @node.attributes.each_attribute { |attr|
                    atts.push(attr.expanded_name)
            }

    return Iterator.new atts.each
end
createCData_(text) click to toggle source
# File lib/src-generic/Xml.rb, line 170
def createCData_(text)
        elem = REXML::CData.new(text)
        return Xml.new elem
end
createElement_(name) click to toggle source
# File lib/src-generic/Xml.rb, line 152
def createElement_(name)
        elementNode = REXML::Element.new name
        return Xml.new elementNode
end
createPCData_(text) click to toggle source
# File lib/src-generic/Xml.rb, line 157
def createPCData_(text)
        textNode = Text.new text
        return Xml.new textNode
end
elements() click to toggle source
# File lib/src-generic/Xml.rb, line 57
def elements()
        childElements = Array.new
        node = nil
        if (self.firstChild() != nil)
                node = self.firstChild().node
        end

        while (!node.nil?)
                if (node.node_type == :element)
                        childElements.push(node)
                end
        node = node.next_sibling
        end
        # return XmlIterator.new(childElements.each)
        return XmlIterator.new childElements.each
end
firstChild() click to toggle source
# File lib/src-generic/Xml.rb, line 109
def firstChild()
        if defined?(@node.each_child).nil? || @node.each_child.count == 0
                return nil
        end

        return Xml.new @node.each_child.next
end
firstElement() click to toggle source
# File lib/src-generic/Xml.rb, line 117
def firstElement()
        @node.each_recursive {|e|
                       if e.class == REXML::Element
                               return Xml.new e
                       end
        }
        return nil
end
get(attributeName) click to toggle source
# File lib/src-generic/Xml.rb, line 87
def get(attributeName)
    return @node.attributes[attributeName]
end
getNodeValue_() click to toggle source
# File lib/src-generic/Xml.rb, line 162
def getNodeValue_()
        if (@node.node_type == :text || @node.node_type == :node)
                return @node.value
        else
                return @node.text
        end
end
insertChild(x, pos) click to toggle source
# File lib/src-generic/Xml.rb, line 130
def insertChild(x, pos)
        if pos < 0
        end
        # On ruby first index starts at 1.
        # Check if node has childs, if not insert node directly.
        if @node.elements[1].nil?
                xmlparsed.firstChild.addChild(x)
        else
                @node.insert_before(@node.elements[1], x.node)
        end
end
iterator() click to toggle source
# File lib/src-generic/Xml.rb, line 53
def iterator()
        return XmlIterator.new(@node.each)
end
node() click to toggle source
# File lib/src-generic/Xml.rb, line 16
def node
        @node
end
node=(node) click to toggle source
# File lib/src-generic/Xml.rb, line 13
def node=(node)
         @node=node
 end
nodeName() click to toggle source
# File lib/src-generic/Xml.rb, line 23
def nodeName
        @nodeName
end
nodeName=(nodeName) click to toggle source
# File lib/src-generic/Xml.rb, line 20
def nodeName=(nodeName)
        @nodeName=nodeName
end
nodeType() click to toggle source
# File lib/src-generic/Xml.rb, line 30
def nodeType
        @nodeType
end
nodeType=(nodeType) click to toggle source
# File lib/src-generic/Xml.rb, line 27
def nodeType=(nodeType)
        @nodeType=nodeType
end
parent_() click to toggle source
# File lib/src-generic/Xml.rb, line 102
def parent_()
   if @node.parent.nil?
           return nil
   end
   return Xml.new @node.parent
end
remove(attributeName) click to toggle source
# File lib/src-generic/Xml.rb, line 91
def remove(attributeName)
   if !@node.attributes[attributeName].nil?
           @node.attributes.delete attributeName
   end
end
removeChild(x) click to toggle source
# File lib/src-generic/Xml.rb, line 141
def removeChild(x)
        remove = @node == x.node.parent
        if remove
                x.node.remove
        end
end
set(attributeName, attributeValue) click to toggle source
# File lib/src-generic/Xml.rb, line 97
def set(attributeName, attributeValue)
    newAtrribute = REXML::Attribute.new(attributeName, attributeValue);
    @node.attributes.add(newAtrribute)
end
toString() click to toggle source
# File lib/src-generic/Xml.rb, line 175
def toString()
        return @node.to_s
end