Можем ли мы скопировать текст после изображения из файла юникода в Sikuli?

У меня есть содержимое файла, как показано ниже

<?xml version='1.0' encoding='UTF-8'?><cont:ContactId><all:Individual.partyId>10028305</all:Individual.partyId></cont:ContactId><all:applicationId>C18400</all:applicationId>

Мне нужно скопировать "C18400" из этого файла и распечатать на выходе в SIKULI. Пожалуйста, дайте мне знать, можем ли мы использовать скрипт Python для получения вывода или есть ли другой способ сделать это. Также дайте мне знать, можем ли мы использовать захват изображения сикули для этого, но этот идентификатор приложения, который мне нужен в выводе, является динамическим, который постоянно меняется.

Я использовал приведенный ниже скрипт Python, но он не работал.

КОД:

with open("D:\\SODS.txt","r") as fp:
    for line in fp:
        if "applicationId" in line:
            print "true"
            print re.search(r"applicationId\>(.+?)\<",fp)

ОШИБКА:

TypeError: ожидалась строка или юникод, но получено


person user3571567    schedule 25.04.2014    source источник
comment
Какое это имеет отношение к Сикули? Похоже, вам просто нужно прочитать файл XML в Python. Найдите Python XML и выберите библиотеку для разбора XML.   -  person Nathaniel Waisbrot    schedule 25.04.2014
comment
@ user3571567: Я уверен, вы знаете, что Sikuli основан в основном на Python, поэтому Натаниэль Вайсброт предложил поискать Python XML. Если вам нужна какая-либо вычислительная мощность, и вы не используете компоненты Sikuli для графической идентификации, вам подойдет обычный Python. При этом - какая строка дает ошибку? Как выглядит ваш вывод (или вы его вообще не получаете?)   -  person autoKarma    schedule 28.04.2014


Ответы (1)


На самом деле мой файл выглядит так, как показано ниже

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
 <soapenv:Body>
  <cont:CreateContactResponse xmlns:cont="http://DataModelContactManagement" xmlns:all="http://MID/Business/0.1/All" xmlns:com="http://SOA/1.0/Common">
     <com:status>0</com:status>
     <com:description/>
     <cont:ContactId>
        <all:MIDBusCm.Individual.partyId>10028310</all:MIDBusCm.Individual.partyId>
     </cont:ContactId>
     <all:MIDBusCu.CustomerOrder.applicationId>C18403</all:MIDBusCu.CustomerOrder.applicationId>
  </cont:CreateContactResponse>

Я попробовал приведенный ниже скрипт PYTHON

import xml.etree.ElementTree as ET
data = open("D:\\Pravina\\Projects\\Meteor\\Automation\\API\\SODS.txt", 'r')
tree = ET.parse(data)
doc = tree.getroot()
print doc

 rootText='.//{http://'SOA'/1.0/Common}'
 errorCode=tree.find(rootText + 'status').text
 print errorCode

С приведенным выше кодом вывод, который я получил, был

"/schemas.xmlsoap.org/soap/envelope/}Конверт в a> 0 "

В моем случае вывод должен быть «C18403», это находится между тегом «all:MIDBusCu.CustomerOrder.applicationId».

Пожалуйста, дайте мне знать, если я что-то пропустил здесь?

person user3571567    schedule 28.04.2014