示例#1
0
文件: etXML.py 项目: shybkoi/WMS-Demo
 def getTree(self):
     "распарсить дерево"
     #parser = ET.XMLParser(encoding="windows-1251")
     #self.tree = ET.parse(self.filename, parser=parser)
     if self.xmlstring:
         self.tree = ET.ElementTree(ET.XML(self.xmlstring))
     elif self.filename:
         self.tree = ET.parse(self.filename)
     else:
         self.tree = ET.ElementTree(ET.XML('<root></root>'))
示例#2
0
    def test_correct_serialization_meta_attributes(self):
        poi = Poi()
        poi.length = 10
        poi.location = Location( lat= '6.8989', lng = '5.344')
        poi.descriptions = {"nl": "Nederlands", "de": "Duits"}
        
        xml_repr = XMLSerializer().serialize(poi)
        
        print xml_repr
        
        poi_xml_tree = ElementTree.XML(xml_repr.encode('utf-8'))
        self.assertEqual(poi_xml_tree.tag, 'poi')
        length_element = poi_xml_tree.find('length')
        self.assertTrue( length_element is not None)
        self.assertTrue( 'dimension' in length_element.attrib)
        self.assertEqual(length_element.attrib['dimension'], 'dm')
        
        location_element = poi_xml_tree.find('location')
        self.assertTrue( location_element is not None)
        self.assertTrue( 'projection' in location_element.attrib)
        self.assertEqual(location_element.attrib['projection'], 'WGS84')
        

        unser_poi = XMLUnserializer().unserialize(xml_repr, Poi)
        self.assertEqual(poi.length, unser_poi.length)
示例#3
0
def parse(text):
    """
    Parse text as XML.
    
    >>> parse('<doc/>')
    <Element doc ...>

    >>> parse('')
    Traceback (most recent call last):
        ...
    Exception: 
    <BLANKLINE>
    xml.parsers.expat.ExpatError: no element found: line 1, column 0
    >>> parse('<doc><foo></doc>')
    Traceback (most recent call last):
        ...
    Exception: 
    <doc><foo></doc>
    xml.parsers.expat.ExpatError: mismatched tag: line 1, column 12
    """
    try:
        doc = ElementTree.XML(text)
    except xml.parsers.expat.ExpatError, e:
        # This cuts out a little bit of the Python traceback
        # and shows the bad XML at the end, right above the
        # error description.
        raise Exception('\n%s\n%s: %s' % (text, e.__class__, e))
示例#4
0
def get_auth_token_handler(request):
    '''
    Receives: POST data 'ticket' OR GET request with parameters 'auth_token' and 'ticket' from Box.com
    Pairs authenticated ticket with Box API Key to retreive Auth auth_token
    needed for accessing user Box files and folders.
    '''

    if request.session.get('auth_token'):                           # if an active session is present
        return redirect('sendbox_app_view', folder_id=0)            # redirect to main app page

    if request.method == 'POST' and request.POST.get('ticket'):  # if POST request was made
            url = u'https://www.box.com/api/1.0/rest'            # build request url for auth_token retrieval
            params = {'action': 'get_auth_token',                # build GET parameters
                        'api_key': settings.BOX_API_KEY,
                            'ticket': request.POST['ticket']}
            try:
                response = requests.get(url, params=params)         # GET request for auth_token retrieval
                obj = ET.XML(response.content)                      # parse xml response to python object
                auth_token = obj.findtext('auth_token')             # extract value from 'auth_token' tag
                request.session['auth_token'] = auth_token          # store auth_token in session key (see django sessions doc)
                return redirect('sendbox_app_view', folder_id=0)    # redirect to main app page
            except AttributeError:
                messages.error(request, "Invalid Ticket! Try logging in again!")
                return redirect('sendbox_index_view')                    # django reverse() shortcut (see django shortcuts doc)

    if request.GET.get('auth_token') and request.GET.get('ticket'):     # if GET parameters are present (for Box.com redirection)
        request.session['auth_token'] = request.GET['auth_token']   # just store auth_token in session key
        return redirect('sendbox_app_view', folder_id=0)            # redirect to main app page

    messages.error(request, "Cannot access this page directly!")
    return redirect('sendbox_index_view')                           # redirect to home page
示例#5
0
    def load_vocabulary(self, vocabulary):
        """
        Load the vocabulary (.xml) file.
        """
        # word-to-concept mappings
        for key in PoS.Grps:
            setattr(self, key, {})

        # concept-to-word mappings
        self.concepts = {}
        for key in PoS.Grp2Abr:
            self.concepts[key] = {}
            
        if type(vocabulary)==str and len(vocabulary) < 32:
            data = open(vocabulary, 'rt').read()    # short names are read as filenames
        elif type(vocabulary)==file:
            data = vocabulary.read()                # file handle
        else:
            data = vocabulary                       # data buffer

        self.xml = ElementTree.XML(data)
        if self.xml.tag != 'locale':
            raise PUB_InvalidVocabulary("Main element is not 'locale'")

        for attrib in ('name', 'lang', 'region', 'encoding', 'direction', 'language', 'variant'):
            if self.xml.attrib.has_key(attrib):
                setattr(self, attrib, self.xml.attrib[attrib])
            else:
                setattr(self, attrib, '')

        for child in self.xml.getchildren():
            if child.tag in PoS.Grps:
                for concept in [c for c in child.getchildren() 
                                if c.tag==PoS.Grp2Abr[child.tag]]:
                    self._load_concept(concept, child.tag)
示例#6
0
 def close(self):
     args = [string.join(self.__data, "")]
     if self.__encoding:
         args.append(self.__encoding)
     stdout, stderr = _elementtidy.fixup(*args)
     self.errlog = stderr
     return ElementTree.XML(stdout)
示例#7
0
def sendbox_index_view(request):
    '''
    Application Entry Point. Retrieves generated Box.com ticket upon construction.
    Facilitates app authentication with user's Box account
    '''
    url = u'https://www.box.com/api/1.0/rest'           # build url for ticket retrieval
    params = {'action': 'get_ticket',                   # build GET parameters
                'api_key': settings.BOX_API_KEY}
    context = {}
    try:
        response = requests.get(url, params=params)                 # GET request for ticket
        obj = ET.XML(response.content)                              # parse xml response to python object
        ticket = obj.findtext('ticket')                             # extract value from 'ticket' tag
        url = u'https://www.box.com/api/1.0/auth/%s' % ticket       # build url for Box.com ticket authentication
        context = {'ticket': ticket, 'url': url, }                  # template context (see django templates)
    except AttributeError:                                          # triggers when obj.find('ticket') asserts to None
        messages.error(request, "Invalid API Key!")                 # django message dispatcher (see django messages doc)
        pass

    if request.session.get('auth_token'):                           # check if auth_token exists
        context['auth_token'] = request.session.get('auth_token')   # add it to context for displaying to user

    return render_to_response('sendbox/index.html',                 # HttpResponse shortcut (see django shortcuts doc)
                                context,
                                    context_instance=RequestContext(request))
示例#8
0
def main(bgffile,xbgffile):
	seq = ET.Element(slpsns.xbgf_('sequence'))
	rr = ET.SubElement(seq,slpsns.xbgf_('reroot'))
	for r in ET.XML('<list>'+''.join(open(bgffile,'r').readlines()).strip()+'</list>').findall('*'):
		x = ET.SubElement(rr,'root')
		x.text = r.text
	ET.ElementTree(seq).write(xbgffile)
	return
示例#9
0
def xinclude_loader(href, parse="xml", encoding=None):
    try:
        data = XINCLUDE[href]
    except KeyError:
        raise IOError("resource not found")
    if parse == "xml":
        return ElementTree.XML(data)
    return data
示例#10
0
def check(a, b):
    import re
    a = ElementTree.tostring(ElementTree.XML(a))
    a = re.sub("HTML Tidy[^\"]+", "TIDY", a)
    a = re.sub("\r\n", "\n", a)
    if a != b:
        print a
        print "Expected:"
        print b
示例#11
0
 def __init__(self, xmlstate=None, validatestate=True):
     self._model = FieldModel(self.modeltext)
     if xmlstate is not None:
         self._state = ET.ElementTree(ET.XML(xmlstate))
         # If state is being pre-supplied, then it ought to validate,
         # unless the caller has specifically asserted that it does not:
         if validatestate:
             self.state_validate()
     else:
         self._state = ET.ElementTree(ET.Element('none'))
示例#12
0
    def setUp(self):
        from elementtree import ElementTree as et
        from elementtree.ElementTree import tostring
        from com.finnean.io.reader import XMLReader

        reader = XMLReader.XMLReader(r'D:\Lib\Butters\new-results.xml')
        root = et.XML(reader.read())
        results = root.findall('results')
        result = results[0].findall('result')
        host, date, ports = result[0].getchildren()
        p = ports[0]
        service, information = p.getchildren()
        self.s = Service(service)
示例#13
0
 def _retrieve(self):
     """Query Apache Tomcat Server Status Page in XML format and return 
     the result as an ElementTree object.
     
     @return: ElementTree object of Status Page XML.
     
     """
     url = "%s://%s:%d/manager/status" % (self._proto, self._host,
                                          self._port)
     params = {}
     params['XML'] = 'true'
     response = util.get_url(url, self._user, self._password, params)
     tree = ElementTree.XML(response)
     return tree
示例#14
0
 def get_episodes(feed):
     #Open URL and get the stuff
     url = feed.url
     doc = urllib2.urlopen(url)
     rssXML = doc.read()
     doc.close()
     tree = ET.XML(rssXML)
     episodes = tree.findall('channel/item')
     episodesTitles = tree.findall('channel/item/title')
     for j in xrange(len(episodes)):
         n = episodesTitles[j]
         n = n.text
         epN = ((len(episodes)) - j)
         epXML = episodes[j]
         epXML = ET.tostring(epXML)
         newEp = models.Episode(name=n, episodeNum=epN, xml=epXML)
         newEp.save()
示例#15
0
 def _retrieve(self):
     """Query Apache Tomcat Server Status Page in XML format and return 
     the result as an ElementTree object.
     
     @return: ElementTree object of Status Page XML.
     
     """
     if self._user is not None and self._password is not None:
         url = "%s://%s:%s@%s:%d/manager/status?XML=true" % (
             self._proto, urllib.quote(self._user),
             urllib.quote(self._password), self._host, self._port)
     else:
         url = "%s://%s:%d/manager/status?XML=true" % (
             self._proto, self._host, self._port)
     fp = urllib.urlopen(url)
     response = util.socket_read(fp)
     fp.close()
     tree = ElementTree.XML(response)
     return tree
示例#16
0
def feed(request,slug):
	#Entered Function and captured slug
	print "Worked!"
	print slug

	template_name = 'xml.html'
	eps = Episode.objects.all().filter(episodeNum = 2)
	epsXML = []

	for ep in eps:
		print ep.xml
		tree = ET.XML(ep.xml)
		epsXML.append(ET.tostring(tree))


	print epsXML

	context = {"epsXML": epsXML}
	return render_to_response(template_name, context, content_type="application/rss+xml")
示例#17
0
def today(league):
    yyyymmdd = int(
        datetime.datetime.now(pytz.timezone('US/Pacific')).strftime("%Y%m%d"))
    games = []

    try:
        f = urllib2.urlopen(url % (league, yyyymmdd))
        jsonp = f.read()
        f.close()
        json_str = jsonp.replace('shsMSNBCTicker.loadGamesData(',
                                 '').replace(');', '')
        json_parsed = json.loads(json_str)
        for game_str in json_parsed.get('games', []):
            game_tree = ET.XML(game_str)
            visiting_tree = game_tree.find('visiting-team')
            home_tree = game_tree.find('home-team')
            gamestate_tree = game_tree.find('gamestate')
            home = home_tree.get('nickname')
            away = visiting_tree.get('nickname')
            os.environ['TZ'] = 'US/Eastern'
            start = int(
                time.mktime(
                    time.strptime(
                        '%s %d' % (gamestate_tree.get('gametime'), yyyymmdd),
                        '%I:%M %p %Y%m%d')))
            del os.environ['TZ']

            games.append({
                'league': league,
                'start': start,
                'home': home,
                'away': away,
                'home-score': home_tree.get('score'),
                'away-score': visiting_tree.get('score'),
                'status': gamestate_tree.get('status'),
                'clock': gamestate_tree.get('display_status1'),
                'clock-section': gamestate_tree.get('display_status2')
            })
    except Exception, e:
        print e
示例#18
0
def summarize_list(seq):
    return map(summarize, seq)


def normalize_crlf(tree):
    for elem in tree.getiterator():
        if elem.text: elem.text = elem.text.replace("\r\n", "\n")
        if elem.tail: elem.tail = elem.tail.replace("\r\n", "\n")


SAMPLE_XML = ElementTree.XML("""
<body>
  <tag>text</tag>
  <tag />
  <section>
    <tag>subtext</tag>
  </section>
</body>
""")

#
# interface tests


def check_string(string):
    len(string)
    for char in string:
        if len(char) != 1:
            print "expected one-character string, got %r" % char
    new_string = string + ""
示例#19
0
def summarize_list(seq):
    return map(summarize, seq)


def normalize_crlf(tree):
    for elem in tree.getiterator():
        if elem.text: elem.text = string.replace(elem.text, "\r\n", "\n")
        if elem.tail: elem.tail = string.replace(elem.tail, "\r\n", "\n")


SAMPLE_XML = ElementTree.XML("""
<body>
  <tag class='a'>text</tag>
  <tag class='b' />
  <section>
    <tag class='b' id='inner'>subtext</tag>
  </section>
</body>
""")

#
# interface tests


def check_string(string):
    len(string)
    for char in string:
        if len(char) != 1:
            print "expected one-character string, got %r" % char
    new_string = string + ""
示例#20
0
def make_xml(s):
    return et.XML('<xml>%s</xml>' % s)
示例#21
0
 def __init__(self, xmlrepr):
     self.basemodel = ET.XML(xmlrepr)
示例#22
0
# modified from http://www.larsen-b.com/Article/204.html

import sys
try:
    from elementtree import ElementTree
except:
    from xml.etree import ElementTree

try:
    file = sys.argv[1]
    data = open(file, 'r').read()
except:
    print sys.argv[0] + " {kismet logfile}"
    sys.exit(1)

detection = ElementTree.XML(data)

# KML Header
print """<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://earth.google.com/kml/2.0">
<Document>
   <name>Kismet Log </name>
      <Folder>
         <name> Kismet Log Points </name>"""

for node in detection.getchildren():
    try:
        ssid = node.find('SSID').text
    except AttributeError:
        #hidden SSID
        ssid = "{unknown SSID}"
示例#23
0
def xml_to_dict(xml):
    return XmlDictConfig(ElementTree.XML(xml))
from elementtree import ElementTree as et
from elementtree.ElementTree import tostring
from com.finnean.io.reader import XMLReader

reader = XMLReader.XMLReader(r'D:\Lib\Butters\new-results.xml')
root = et.XML(reader.read())
results = root.findall('results')
result = results[0].findall('result')
host, date, ports = result[0].getchildren()
p = ports[0]
service, information = p.getchildren()
severity, _id, data = information.getchildren()
示例#25
0
    def testXMLReporting(self):
        # silly try/except chaining to find an available version of ElementTree
        try:
            import elementtree.ElementTree as ET
        except ImportError:
            try:
                import cElementTree as ET
            except ImportError:
                try:
                    import lxml.etree as ET
                except ImportError:
                    try:
                        import xml.etree.ElementTree as ET  # Python 2.5
                    except ImportError:
                        testoob.testing.skip(reason="Needs ElementTree")

        root = ET.XML(self._get_file_report("xml"))

        # testsuites tag
        self.assertEqual("results", root.tag)

        # ensures only one testsuites element
        [testsuites] = root.findall("testsuites")

        def extract_info(testcase):
            class Struct:
                pass

            result = Struct()
            result.tag = testcase.tag
            result.name = testcase.attrib["name"]
            result.result = testcase.find("result").text
            failure = testcase.find("failure")
            result.failure = failure is not None and failure.attrib[
                "type"] or None
            error = testcase.find("error")
            result.error = error is not None and error.attrib["type"] or None
            return result

        testcase_reports = [
            extract_info(testcase)
            for testcase in testsuites.findall("testcase")
        ]

        # ensure one testcase of each type
        [success] = [x for x in testcase_reports if x.result == "success"]
        [failure] = [x for x in testcase_reports if x.result == "failure"]
        [error] = [x for x in testcase_reports if x.result == "error"]

        def check_result(testcase, name=None, failure=None, error=None):
            self.assertEqual("testcase", testcase.tag)
            self.assertEqual(name, testcase.name)
            self.assertEqual(failure, testcase.failure)
            self.assertEqual(error, testcase.error)

        check_result(success, name="testSuccess (suites.CaseMixed)")
        check_result(failure,
                     name="testFailure (suites.CaseMixed)",
                     failure="exceptions.AssertionError")
        check_result(error,
                     name="testError (suites.CaseMixed)",
                     error="exceptions.RuntimeError")