Несколько разделов в файле свойств xml

в сообщении, расположенном здесь

Ответ Эндрю Финнелла был, безусловно, самым полезным. Однако мне нужно знать, как расширить это, чтобы разрешить другие разделы, кроме просто

<properties>
</properties>

Если ответ уже есть на этой странице, пожалуйста, дайте мне знать, если нет, кто-нибудь может мне помочь.

В основном я хочу иметь

<properties>
</properties>
<blah1>
</blah1>
<blah2>
</blah2>

и т.д... как мои разделы. Все обычные библиотеки xml и тому подобное, которые я нашел, слишком громоздки и запутаны, поэтому я надеюсь, что смогу использовать вышеупомянутый метод с гораздо большей легкостью. Заранее спасибо.


person user1305988    schedule 01.04.2012    source источник


Ответы (3)


Для XML-файла требуется ровно один корневой элемент. В противном случае он недействителен и не может быть обработан синтаксическими анализаторами xml.

Действительный xml с разделами может выглядеть следующим образом:

<properties>  <!-- root element -->
  <section1>  <!-- section 1 as a child of root -->
  </section1>
  <section2>  <!-- section 2 as a child of root -->
  </section2>
</properties>
person Andreas Dolk    schedule 01.04.2012

Если вы поместите разделы в файл свойств XML, он больше не будет файлом свойств XML, и вы не можете рассчитывать на использование java.utils.Properties для его обработки.

Если вам нужны свойства (пары имя/значение) в именованных разделах, вы можете использовать синтаксис файла INI. Для этого есть библиотека Java.

Если вы хотите что-то более общее, взгляните на JSON. Существует ряд библиотек Java, которые обрабатывают JSON. (Мне нравится Jackson, потому что он позволяет отображать обычные Java-бины в JSON.)

person Stephen C    schedule 01.04.2012

Хорошо, спасибо за быстрые ответы. Я немного изменил структуру, и вот мой xml. Это на 100% соответствует или нужны небольшие изменения?

<?xml version="1.0"?>
<configuration>
<settings name="connection">
    <server>test.com</server>
    <name>blah</name>
    <password>blah</password>
    <owner>blah</owner>
    <staff>blah,blH,BLAH,BLah</staff>
    <timercount>5</timercount>
</settings>

<settings name="prvtmsg">
    <hello>Hello %person. How are you today?</hello>
    <commands>I have the following commands: About, Help, and Join</commands>
</setting>

<settings name="timers">
    <timer1>interval,action,delay</timer1>
    <timer2>interval,action,delay</timer2>
    <timer3>interval,action,delay</timer3>
    <timer4>interval,action,delay</timer4>
    <timer5>interval,action,delay</timer5>
</settings>
</configuration>
person user1305988    schedule 01.04.2012