2014-10-29 4 views
0

Я пытаюсь преобразовать каждый узел XML в строку Excel, чтобы содержать все данные, включая узлы, которые имеют подносы. Я загрузил XML-редакторы и попытался переместить субноды из родительских узлов, но он не делает этого для всего XML. Я также пытался создать и добавить XSD, но он очищает все содержимое моего XML.Как преобразовать каждый узел XML в строку Excel

Любая помощь будет очень признательна, так как я достиг тупика! Это XML, который я пытаюсь преобразовать в Excel. Я удалил большинство узлов game_action и оставил несколько в качестве примера. Поэтому, когда я загрузить этот XML в Excel, который я могу и я, имя Starting_player, match_player_guid и номер не помещается в одной и той же строке, что и video_time, video_time_start и т.д. и т.п.

<game_actions> 
<game_action> 
    <video_time>159.113</video_time> 
    <video_time_start>149.113</video_time_start> 
    <video_time_end>169.113</video_time_end> 
    <game_time>159.113</game_time> 
    <color>0x0000ff</color> 
    <starting_player> 
    <name>G. Aburjania</name> 
    <match_player_guid>ACA150E6-2DA9-CB29-7963-52D514A5B265</match_player_guid> 
    <number>8</number> 
    </starting_player> 
    <ending_player> 
    <name>C. Maraggos</name> 
    <match_player_guid>532EDB0E-809A-64FD-EAD5-52D514A5C43D</match_player_guid> 
    <number>6</number> 
    </ending_player> 
    <starting_position> 
    <x>496</x> 
    <y>560</y> 
    <zone>6</zone> 
    </starting_position> 
    <ending_position> 
    <x>415</x> 
    <y>567</y> 
    <zone>6</zone> 
    </ending_position> 
    <team> 
    <name>Anorthosis FC</name> 
    <team_guid>bcd1ae4c-4c2d-4c92-978d-6883595d487d</team_guid> 
    </team> 
    <action> 
    <action_id>83</action_id> 
    <name>Pass</name> 
    </action> 
    <direction>right</direction> 
    <comments/> 
    <uid>39EA2490-FB83-3750-5B65-55D0F5372DE7</uid> 
</game_action> 
<game_action> 
    <video_time>165.866</video_time> 
    <video_time_start>155.866</video_time_start> 
    <video_time_end>175.866</video_time_end> 
    <game_time>165.866</game_time> 
    <color>0xcc0000</color> 
    <starting_player> 
    <name>C. Maraggos</name> 
    <match_player_guid>532EDB0E-809A-64FD-EAD5-52D514A5C43D</match_player_guid> 
    <number>6</number> 
    </starting_player> 
    <starting_position> 
    <x>402</x> 
    <y>585</y> 
    <zone>6</zone> 
    </starting_position> 
    <ending_position> 
    <x>675</x> 
    <y>44</y> 
    <zone>6</zone> 
    </ending_position> 
    <team> 
    <name>Anorthosis FC</name> 
    <team_guid>bcd1ae4c-4c2d-4c92-978d-6883595d487d</team_guid> 
    </team> 
    <action> 
    <action_id>88</action_id> 
    <name>Attack</name> 
    </action> 
    <action> 
    <action_id>103</action_id> 
    <name>Wrong Pass</name> 
    </action> 
    <direction>right</direction> 
    <comments/> 
    <uid>C7320CA0-BD4E-2D1B-C4A9-55D14E959346</uid> 
</game_action> </game_actions> 

ответ

0

Я могу предложить 3 варианта

  1. Из кнопки импорта данных XML - на ленте данных.

  2. Попробуйте использовать объект MSXML2.DOMDocument в VBA.

  3. Попробуйте использовать регулярные выражения (мое предпочтение всегда), например. "<game_action>((?:.|\n)*?)</game_action>" получает все теги game_action. Затем рекурсивно получить другие теги изнутри. Я сделал надстройку с функциями UDF here. U может использовать его для получения содержимого тега, такого как =GetRegex(CELL_WITH_XML,"<video_time>((?:.|\n)*?)</video_time>";0), последний аргумент может быть изменен для получения следующих тегов

Смежные вопросы