Как я могу просмотреть и перечислить 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)