Как я могу просмотреть и перечислить XPATH сообщения XML?

Как я могу просмотреть и перечислить XPATH сообщения XML?

Спасибо за рассмотрение этой проблемы. Я не уверен, является ли это правильным форумом, чтобы отправить эту тему. Если нет, дайте мне знать правильный форум для публикации этой темы.

У нас есть сложное сообщение XML (данные в формате XML). Мы исследуем способ извлечения всех XPATH этого XML-сообщения и его содержимого данных уровня элемента / атрибута. Мы попробовали с XMLSPY & xmltwig, но не повезло. Xml_grep извлекает данные, если мы даем ввод XPATH. В xml_grep нет опции для просмотра всех XPATHS сообщения XML.

У меня правильно сформированное XML-сообщение. Я хочу создать список / отчет как

1) Весь Xpath сообщения XML (Просмотреть все XPATH и список сообщений XML)

2) Xpath, содержимое данных для этого XPATH (просмотрите все XPATH, содержимое данных и перечислите оба XML-сообщения)

Вот пример (Входное XML-сообщение)

<?xml version="1.0"?>
<PARTS>
<TITLE>Computer Parts</TITLE>
<PART>
<ITEM>Motherboard</ITEM>
<MANUFACTURER>ASUS</MANUFACTURER>
<MODEL>P3B-F</MODEL>
<COST> 123.00</COST>
</PART>
<PART>
<ITEM>Video Card</ITEM>
<MANUFACTURER>ATI</MANUFACTURER>
<MODEL>All-in-Wonder Pro</MODEL>
<COST> 160.00</COST>
</PART>
<PART>
<ITEM>Sound Card</ITEM>
<MANUFACTURER>Creative Labs</MANUFACTURER>
<MODEL>Sound Blaster Live</MODEL>
<COST> 80.00</COST>
</PART>
<PART>
<ITEM>inch Monitor</ITEM>
<MANUFACTURER>LG Electronics</MANUFACTURER>
<MODEL> 995E</MODEL>
<COST> 290.00</COST>
</PART>
</PARTS>

Желаемый вывод -> я создал следующий список XML вручную

/PARTS/TITLE Computer       Parts
/PARTS/PART[1]/ITEM         Motherboard
/PARTS/PART[1]/MANUFACTURER ASUS
/PARTS/PART[1]/MODEL        P3B-F
/PARTS/PART[1]/COST         123.00
/PARTS/PART[2]/ITEM         Video Card
/PARTS/PART[2]/MANUFACTURER ATI
............
..............
..................
...................

Есть ли какой-либо продукт с открытым исходным кодом для создания такого отчета для сообщения XML?

Как извлечь XPATHs/XPATH, содержимое данных?

Спасибо, что позволили выбрать мозг этого форума.

0 ответов

Только что видел это, я написал что-то, что делает это на python - выводит в csv, с разделителями. Не стесняйтесь использовать это. С радостью ответим на любые вопросы, но не ждем немедленного ответа.

from lxml import etree, objectify

def parseXML(xmlFile, outputFile):
    """
    Parse the XML function
    """
    with open(xmlFile) as fobj:
        xml = fobj.read()

    f = open(outputFile,'w') #open write to file
    root = etree.fromstring(xml)

    f.write("%s|%s\n" %("Field", "Value"))
    tree = etree.ElementTree(root)
    for e in root.iter():
        f.write("%s|%s\n" %(tree.getpath(e), e.text))

    f.close()

if __name__ == "__main__":
    print ('Loading variables...')
    input = '16a.xml'
    output = input + '.csv'

    parseXML(input,output)
Другие вопросы по тегам