Как разобрать XML по SAX и создать список дерева? - PullRequest
1 голос
/ 29 сентября 2011

Я изучил урок о SAX-парсере Java, и теперь мне нужно создать древовидный список XML-файла следующим образом:

<course>
     <chapter>
          <title>chapter one of course one</title>
          <content> .... </content>
     </chapter>

    <chapter>
          <title>chapter two of course one</title>
          <content> .... </content>
    </chapter>
</course>

, а затем я узнаю, как создать структуру данных, например:

string lessons[][] = {
       {"chapter one of course one", "chapter two of course one"},
       {"chapter one of course two", "chapter two of course two", "chapter tree of course two"},
       ....
       ....

}

Ответы [ 4 ]

1 голос
/ 29 сентября 2011

В JDK нет встроенной поддержки для той структуры данных, которую вы ищете. Что вам нужно, это Multimap . Библиотека гуавы предоставляет эту структуру данных. Вы можете использовать эту библиотеку (я рекомендую) или создать свою собственную.

Кроме того, убедитесь, что вы прочитали мой ответ в этой ТАКОЙ записи, если вы читаете контент элемента, используя SAX.

Анализатор JAVA SAX разделяет вызовы символов ()

0 голосов
/ 14 декабря 2016

Этот код делает именно то, что вы ищете. Вам просто нужно настроить его, чтобы вывести желаемую структуру JSON.

https://github.com/kasmodia/sax-tree-parser

0 голосов
/ 30 сентября 2011

Думайте в терминах стека . В startElement () нажимаешь, а в endElement нажимаешь (). В зависимости от имени тега элемента вы делаете интересные вещи с тем, что находится в стеке и, возможно, также с тем, что у вас есть в «глобальном» контексте.

0 голосов
/ 29 сентября 2011

здесь вы идете: ЭТО - документация SAX, прочитайте и попробуйте создать свой собственный анализатор

...