Я пытаюсь сгенерировать XML из другого XML на основе некоторых определенных XPATH.Генерировать XML из некоторых определенных XPATH
XPATH:
country/name,
country/org_id,
country/lang,
country/currency,
generate_date,
schedule/category/id,
schedule/category/name,
schedule/category/classes/class/id,
schedule/category/classes/class/duration,
schedule/category/classes/class/price,
schedule/category/classes/class/instruction_language
Xpath является исключением имени корневого узла, и это список.
XML:
<?xml version="1.0" encoding="utf-8" ?>
<ou_schedule>
<country>
<name>Country Name</name>
<org_id>Org ID</org_id>
<lang>language</lang>
<currency>Currency</currency>
</country>
<generate_date>Date</generate_date>
<schedule>
<category>
<id>cat id</id>
<name>Cat name</name>
<classes>
<class>
<id>class id</id>
<duration>class duration</duration>
<price>price</price>
<instruction_language>Test Data</instruction_language>
</class>
<class>
<id>class id</id>
<duration>class duration</duration>
<price>price</price>
<instruction_language>Test Data</instruction_language>
</class>
</classes>
</category>
</schedule>
</ou_schedule>
Выход:
<?xml version="1.0" encoding="utf-8"?>
<ou_schedule>
<country.name>country name</country.name>
<country.org_id>org id</country.org_id>
<country.lang>language</country.lang>
<country.currency>currency</country.currency>
<generate_date>date</generate_date>
<schedule.category.name>Cat Name</schedule.category.name>
<schedule.category.id>Cat ID</schedule.category.id>
<schedule.category.classes.class.id>class id</schedule.category.classes.class.id>
<schedule.category.classes.class.duration>class duration</schedule.category.classes.class.duration>
<schedule.category.classes.class.price>price</schedule.category.classes.class.price>
<schedule.category.classes.class.instruction_language>Test Data</schedule.category.classes.class.instruction_language>
<country.name>country name</country.name>
<country.org_id>org id</country.org_id>
<country.lang>language</country.lang>
<country.currency>currency</country.currency>
<generate_date>date</generate_date>
<schedule.category.name>Cat Name</schedule.category.name>
<schedule.category.id>Cat ID</schedule.category.id>
<schedule.category.classes.class.id>class id</schedule.category.classes.class.id>
<schedule.category.classes.class.duration>class duration</schedule.category.classes.class.duration>
<schedule.category.classes.class.price>price</schedule.category.classes.class.price>
<schedule.category.classes.class.instruction_language>Test Data</schedule.category.classes.class.instruction_language>
</ou_schedule>
Здесь, чтобы удалить двусмысленность я называть имена узлов с их предками, за исключением корневого узла, т.е., такой же, как XPATH но с заменой /
с .
.
Можно ли достичь этого с помощью какого-то общего XSLT
?
Какой другой формат, например? текст? JSON? – Alexander
попробуйте XSLT преобразовать XML в другой формат. – Alexander
Является ли этот список XPaths статичным, или он когда-нибудь изменится? - Обратите внимание, что вывод, который вы нам показываете, не является корректным XML (не имеет корневого элемента). –