예제 #1
0
 def parse(cls, xml):
     result = PositionPacket()
     result.items = []
     root = parseString(xml)
     assert root.tag == PositionPacket.ROOT_NAME
     for child in root:
         if child.tag == 'money_position':
             result.items.append(MoneyPosition(child))
         elif child.tag == 'sec_position':
             result.items.append(SecurityPosition(child))
     return result
예제 #2
0
 def parse(cls, xml):
     result = ClientOrderPacket()
     result.items = []
     root = parseString(xml)
     assert root.tag == ClientOrderPacket.ROOT_NAME
     for child in root:
         if child.tag == Order.ROOT_NAME:
             result.items.append(Order(child))
         elif child.tag == StopOrder.ROOT_NAME:
             for subchild in child:
                 if subchild.tag == 'stoploss':
                     result.items.append(StopLoss(child))
                 elif subchild.tag == 'takeprofit':
                     result.items.append(TakeProfit(child))
     return result
예제 #3
0
def parse(xml):
    """
    Общая функция парсинга xml-структур.

    :param xml:
        Текст XML.
    :return:
        Распарсенный объект. None если не распознан.
    """
    # Корневой тег достанем
    root = parseString(xml).tag
    # Пройдемся по всем классам модуля и найдем подходящий
    for cls in _MY_CLASSES:
        if root == cls.ROOT_NAME:
            return cls.parse(xml)
    # Лабуда какая-то пришла
    LOG.error(f"Unsupported XML:\n{xml}")
    return None
예제 #4
0
파일: util.py 프로젝트: Ezekiah/eulfedora
def parse_xml_object(cls, data, url):
    doc = xmlmap.parseString(data, url)
    return cls(doc)
예제 #5
0
파일: util.py 프로젝트: erudit/eulfedora
def parse_xml_object(cls, data, url):
    doc = xmlmap.parseString(data, url)
    return cls(doc)