diff options
author | Rafael H. Schloming <rhs@apache.org> | 2007-07-23 14:36:05 +0000 |
---|---|---|
committer | Rafael H. Schloming <rhs@apache.org> | 2007-07-23 14:36:05 +0000 |
commit | 9174ccc18fa66e521752e74991d4d9e4ccdf8ab3 (patch) | |
tree | 8a768c7846e4b8c44805a1a23c8ff8c78c60a502 /qpid/python/mllib/__init__.py | |
parent | 8091165787a3e106fcb1edb2f3effcca2f29a9bc (diff) | |
download | qpid-python-9174ccc18fa66e521752e74991d4d9e4ccdf8ab3.tar.gz |
Added a better XML library.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@558742 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/python/mllib/__init__.py')
-rw-r--r-- | qpid/python/mllib/__init__.py | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/qpid/python/mllib/__init__.py b/qpid/python/mllib/__init__.py new file mode 100644 index 0000000000..44b78126fb --- /dev/null +++ b/qpid/python/mllib/__init__.py @@ -0,0 +1,60 @@ +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# + +""" +This module provides document parsing and transformation utilities for +both SGML and XML. +""" + +import dom, transforms, parsers +import xml.sax, types +from cStringIO import StringIO + +def transform(node, *args): + result = node + for t in args: + if isinstance(t, types.ClassType): + t = t() + result = result.dispatch(t) + return result + +def sgml_parse(source): + if isinstance(source, basestring): + source = StringIO(source) + fname = "<string>" + elif hasattr(source, "name"): + fname = source.name + p = parsers.SGMLParser() + num = 1 + for line in source: + p.feed(line) + p.parser.line(fname, num, None) + num += 1 + p.close() + return p.parser.tree + +def xml_parse(source): + p = parsers.XMLParser() + xml.sax.parse(source, p) + return p.parser.tree + +def sexp(node): + s = transforms.Sexp() + node.dispatch(s) + return s.out |