python3 fork piksemel

This commit is contained in:
Erkan IŞIK
2025-10-09 23:47:03 +03:00
commit 914b951029
14 changed files with 4788 additions and 0 deletions
+202
View File
@@ -0,0 +1,202 @@
# Piksemel 2.0
Python XML API based on the iksemel library.
Copyright (C) 2005-2006 TUBITAK/UEKAE, 2019 Safa Arıman, 2020 Erdem Ersoy, 2022 Ersoy Kardesler
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2 of the License, or (at your
option) any later version. Please read the COPYING file.
# Install
You don't need anything other than an installed Python 3 framework (Python 3.6+).
iksemel-lite source is included and compiled built-in to the module.
To compile and install:
```bash
python3 setup.py install
```
Or using pip:
```bash
pip3 install .
```
then you can import the piksemel module in your python programs.
# Documentation
## Module Constants
* TAG
* ATTRIBUTE
* DATA
These enumeration constants are used to report the type of the Node objects.
## Module Exceptions
### ParseError
Raised when given string or file contains invalid XML.
### NotTag
Raised when a function accepting a tag node got another type of object.
### NotData
Raised when a function accepting a data node got another type of object.
## Module Functions
### parse(filename)
Parses the given XML file, and returns the top level tag's node object.
### parseString(string)
Parses the given XML string and returns the top level tag's node object.
### newDocument(tagname)
Creates a new top level tag node object with given tag name.
## Module Objects
### Node
This object represents a node of the XML document tree. If you iterate
over a node object, you'll get the list of its child nodes.
## Node Object Methods
### type()
Returns the type of the node.
### data()
Returns character data for data nodes.
### name()
Returns the name of the tag for tag nodes.
### attributes()
Returns a list of node's attribute names. Returns an empty list
if there aren't any.
### getAttribute(attributename)
Returns the value of the given attribute for tag nodes. If such
an attribute doesn't exists, returns None.
### setAttribute(attributename, value)
Sets the given attribute's value for tag nodes. You can give
the value None for deleting an attribute.
### getTag(tagname)
Returns the first tag node child with the given name. If such a child
doesn't exists, returns None.
### getTagData(tagname)
Returns the contained character data from first tag node child with the
given name.
### tags(tagname=None)
Iterates over child tag nodes. If optional tagname is given, only
iterates over tags with the given name.
### firstChild()
Returns the first child node.
### parent()
Returns the parent node.
### root()
Returns the top level node.
### next()
Returns the next node. If this is the last sibling, returns None.
### nextTag(tagname=None)
Returns the next tag node. If optional tagname is given, returns the
next sibling tag node with the given name. Returns None if this is
the last such sibling.
### previous()
Returns the previous node. If this is the first sibling, returns None.
### previousTag(tagname=None)
Returns the previous tag node. If optional tagname is given, returns
the previous sibling tag node with the given name. Returns None if
this is the first such sibling.
### insertTag(tagname)
Inserts a new child tag node with given name to the child nodes.
Returns the newly created tag node object.
### insertData(data)
Inserts given character data to the child nodes. Returns the newly
created data node object.
### setData(data)
Deletes given tag's current child nodes, then inserts the data as
its child.
### insertNode(node)
Inserts given node tree to the child nodes. Returns the newly created
node object.
### appendTag(tagname)
Create a tag node with given name and append it as the next sibling.
Returns the newly created tag node object.
### appendData(data)
Appends given character data as the next sibling. Returns the newly
created data node object.
### prependTag(tagname)
Create a tag node with given name and append it as the previous
sibling. Returns the newly created tag node object.
### prependData(data)
Prepends given character data as the previous sibling. Returns the
newly created data node object.
### hide()
Deletes the node from document tree.
### toString()
Returns the XML string representation of node tree.
### toPrettyString()
Returns the XML string representation of node tree. Line feeds and
tabs are inserted into the document to make it look pretty.