Я сейчас работаю с xml2 js. Я пытаюсь проанализировать файл xml со следующей структурой:
<?xml version='1.0' encoding='UTF-8'?>
<document>
<teachers>
<teacher>
<id>1</id>
<first_name>Gawen</first_name>
<last_name>Rosenstengel</last_name>
<email>grosenstengel0@google.com.hk</email>
</teacher>
<teacher>
<id>2</id>
<first_name>Fabien</first_name>
<last_name>Stanford</last_name>
<email>fstanford1@usa.gov</email>
</teacher>
</teachers>
<ships>
<ship>
<id>1</id>
<name>Brazelton</name>
<length>218</length>
<crew>555</crew>
</ship>
<ship>
<id>2</id>
<name>Ailsbury</name>
<length>121</length>
<crew>197</crew>
</ship>
</ships>
</document>
Я использую следующий метод asyn c (Typescript) для его анализа:
async parseXMLFile(path: string): Promise<any | undefined> {
let xmlString = await fs.readFile(path, "latin1");
let result = await xml2js.parseStringPromise(xmlString, xmlParseOptions);
return result;
}
Я использую следующие параметры:
export const xmlParseOptions = {
explicitArray: false,
mergeAttrs: true,
explicitRoot: false
};
Вывод, полученный в результате анализа:
{
teachers: {
teacher: [
{ id: '1', first_name: 'Gawen', last_name: 'Rosenstengel', email: 'grosenstengel0@google.com.hk' },
{ id: '2', first_name: 'Fabien', last_name: 'Stanford', email: 'fstanford1@usa.gov' }
]
},
ships: {
ship: [
{ id: '1', name: 'Brazelton', length: '218', crew: '555' },
{ id: '2', name: 'Ailsbury', length: '121', crew: '197' }
]
}
}
Теперь у меня вопрос, с какими настройками я могу получить следующий формат:
{
teachers: [
{ id: '1', first_name: 'Gawen', last_name: 'Rosenstengel', email: 'grosenstengel0@google.com.hk' },
{ id: '2', first_name: 'Fabien', last_name: 'Stanford', email: 'fstanford1@usa.gov' }
],
ships: [
{ id: '1', name: 'Brazelton', length: '218', crew: '555' },
{ id: '2', name: 'Ailsbury', length: '121', crew: '197' }
]
}
Я относительно новичок в xml, поэтому, возможно, я делаю что-то не так. Я уже заранее благодарю вас за ответы :)