XmlWrite¶
Writes XML and XHTML.
-
class
cpip.util.XmlWrite.
Element
(theXmlStream, theElemName, theAttrs=None)¶ Represents an element in a markup stream.
-
__enter__
()¶ Context manager support.
Returns: cpip.plot.SVGWriter.SVGGroup,cpip.plot.SVGWriter.SVGLine,cpip.plot.SVGWriter.SVGRect,cpip.plot.SVGWriter.SVGText,cpip.util.XmlWrite.Element
– self
-
__exit__
(excType, excValue, tb)¶ Context manager support. TODO: Should respect RAISE_ON_ERROR here if excType is not None.
Parameters: - excType (
NoneType
) – Exception type, if raised. - excValue (
NoneType
) – Exception, if raised. - tb (
NoneType
) – Traceback, if raised.
Returns: NoneType
- excType (
-
__init__
(theXmlStream, theElemName, theAttrs=None)¶ Constructor.
Parameters: - theXmlStream (
cpip.plot.SVGWriter.SVGWriter, cpip.util.XmlWrite.XhtmlStream
) – The XML stream. - theElemName (
str
) – Element name. - theAttrs (
NoneType, dict({str : [str]}), dict({})
) – Element attributes
Returns: NoneType
- theXmlStream (
-
__weakref__
¶ list of weak references to the object (if defined)
-
-
exception
cpip.util.XmlWrite.
ExceptionXml
¶ Exception specialisation for the XML writer.
-
exception
cpip.util.XmlWrite.
ExceptionXmlEndElement
¶ Exception specialisation for end of element.
-
cpip.util.XmlWrite.
RAISE_ON_ERROR
= True¶ Global flag that sets the error behaviour
If
True
then this module may raise anExceptionXml
and that might mask other exceptions.If
False
no ExceptionXml will be raised but alogging.error(...)
will be written. These will not mask other Exceptions.
-
class
cpip.util.XmlWrite.
XhtmlStream
(theFout, theEnc='utf-8', theDtdLocal=None, theId=0, mustIndent=True)¶ Specialisation of an XmlStream to handle XHTML.
-
__enter__
()¶ Context manager support.
Returns: cpip.util.XmlWrite.XhtmlStream
– self
-
charactersWithBr
(sIn)¶ Writes the string replacing any
\n
characters with<br/>
elements.Parameters: sIn ( str
) – The string to write.Returns: NoneType
-
-
class
cpip.util.XmlWrite.
XmlStream
(theFout, theEnc='utf-8', theDtdLocal=None, theId=0, mustIndent=True)¶ Creates and maintains an XML output stream.
-
__enter__
()¶ Context manager support.
Returns: cpip.plot.SVGWriter.SVGWriter,cpip.util.XmlWrite.XhtmlStream
– self
-
__exit__
(exc_type, exc_value, traceback)¶ Context manager support.
Parameters: - excType (
NoneType
) – Exception type, if raised. - excValue (
NoneType
) – Exception, if raised. - tb (
NoneType
) – Traceback, if raised.
Returns: NoneType
- excType (
-
__init__
(theFout, theEnc='utf-8', theDtdLocal=None, theId=0, mustIndent=True)¶ Initialise with a writable file like object or a file path.
Parameters: - theFout (
_io.TextIOWrapper, str
) – The file-like object or a path as a string. If the latter it will be closed on __exit__. - theEnc (
str
) – The encoding to be used. - theDtdLocal (
NoneType
,str
) – Any local DTD as a string. - theId (
int
) – An integer value to use as an ID string. - mustIndent (
bool
) – Flag, if True the elements will be indented (pretty printed).
Returns: NoneType
- theFout (
-
__weakref__
¶ list of weak references to the object (if defined)
-
_canIndent
¶ Returns True if indentation is possible (no mixed content etc.).
Returns: bool
– True if the element can be indented.
-
_closeElemIfOpen
()¶ Close the element if open.
Returns: NoneType
-
_encode
(theStr)¶ “Apply the XML encoding such as
'<'
to'<'
Parameters: theStr ( str
) – String to encode.Returns: str
– Encoded string.
-
_flipIndent
(theBool)¶ Set the value at the tip of the indent stack to the given value.
Parameters: theBool ( bool
) – Flag for indenting.Returns: NoneType
-
_indent
(offset=0)¶ Write out the indent string.
Parameters: offset ( int
) – The offset.Returns: NoneType
-
characters
(theString)¶ Encodes the string and writes it to the output.
Parameters: theString ( str
) – The content.Returns: NoneType
-
comment
(theS, newLine=False)¶ Writes a comment to the output stream.
Parameters: - theS (
str
) – The comment. - newLine (
bool
) – If True the comment is written on a new line, if False it is written inline.
Returns: NoneType
- theS (
-
endElement
(name)¶ Ends an element.
Parameters: name ( str
) – Element name.Returns: NoneType
-
id
¶ A unique ID in this stream. The ID is incremented on each call.
Returns: str
– The ID.
-
literal
(theString)¶ Writes theString to the output without encoding.
Parameters: theString ( str
) – The content.Returns: NoneType
-
pI
(theS)¶ Writes a Processing Instruction to the output stream.
-
startElement
(name, attrs)¶ Opens a named element with attributes.
Parameters: - name (
str
) – Element name. - attrs (
dict({str : [str]}), dict({})
) – Element attributes.
Returns: NoneType
- name (
-
writeCDATA
(theData)¶ Writes a CDATA section.
Example:
<![CDATA[ ... ]]>
Parameters: theData ( str
) – The CDATA content.Returns: NoneType
-
writeCSS
(theCSSMap)¶ Writes a style sheet as a CDATA section. Expects a dict of dicts.
Example:
<style type="text/css"><![CDATA[ ... ]]></style>
Parameters: theCSSMap ( dict({str : [dict({str : [str]}), dict({str : [str]})]})
) – Map of CSS elements.Returns: NoneType
-
writeECMAScript
(theScript)¶ Writes the ECMA script.
Example:
<script type="text/ecmascript"> //<![CDATA[ ... // ]]> </script>
Parameters: theData ( str
) – The ECMA script content.Returns: NoneType
-
xmlSpacePreserve
()¶ Suspends indentation for this element and its descendants.
Returns: NoneType
-
-
cpip.util.XmlWrite.
decodeString
(theS)¶ Returns a string that is the argument decoded. May raise a TypeError.
-
cpip.util.XmlWrite.
encodeString
(theS, theCharPrefix='_')¶ Returns a string that is the argument encoded.
From RFC3548:
Table 1: The Base 64 Alphabet Value Encoding Value Encoding Value Encoding Value Encoding 0 A 17 R 34 i 51 z 1 B 18 S 35 j 52 0 2 C 19 T 36 k 53 1 3 D 20 U 37 l 54 2 4 E 21 V 38 m 55 3 5 F 22 W 39 n 56 4 6 G 23 X 40 o 57 5 7 H 24 Y 41 p 58 6 8 I 25 Z 42 q 59 7 9 J 26 a 43 r 60 8 10 K 27 b 44 s 61 9 11 L 28 c 45 t 62 + 12 M 29 d 46 u 63 / 13 N 30 e 47 v 14 O 31 f 48 w (pad) = 15 P 32 g 49 x 16 Q 33 h 50 y
See section 3 of : http://www.faqs.org/rfcs/rfc3548.html
Parameters: - theS (
str
) – The string to be encoded. - theCharPrefix (
str
) – A character to prefix the string.
Returns: str
– Encoded string.- theS (
-
cpip.util.XmlWrite.
nameFromString
(theStr)¶ Returns a name from a string.
See http://www.w3.org/TR/1999/REC-html401-19991224/types.html#type-cdata
“ID and NAME tokens must begin with a letter ([A-Za-z]) and may be followed by any number of letters, digits ([0-9]), hyphens (“-”), underscores (“_”), colons (”:”), and periods (”.”).
This also works for in namespaces as ‘:’ is not used in the encoding.
Parameters: theStr ( str
) – The string to be encoded.Returns: str
– Encoded string.