xml 属性文件中的多个部分

Posted

技术标签:

【中文标题】xml 属性文件中的多个部分【英文标题】:Multiple Sections in xml properties file 【发布时间】:2012-04-15 07:15:27 【问题描述】:

在位于here的帖子中

到目前为止,Andrew Finnell 的回复在某种程度上是最有帮助的。但是,我确实需要知道如何将其扩展到允许其他部分,而不仅仅是

<properties>
</properties>

如果答案已经在该页面上,请告诉我,如果没有,有人可以帮助我。

基本上我想拥有

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

等...作为我的部分。我发现的所有普通 xml 库和此类库都非常庞大且令人困惑,因此我希望能够更轻松地使用前面提到的方法。提前致谢。

【问题讨论】:

【参考方案1】:

一个xml文件需要一个一个根元素。否则无效,无法被xml解析器处理。

带有 sections 的有效 xml 可能如下所示:

<properties>  <!-- root element -->
  <section1>  <!-- section 1 as a child of root -->
  </section1>
  <section2>  <!-- section 2 as a child of root -->
  </section2>
</properties>

【讨论】:

【参考方案2】:

如果您将部分放入 XML 属性文件,它就不再是 XML 属性文件,您不能指望使用java.utils.Properties 来处理它。

如果您的要求是命名部分中的属性(名称/值对),那么您可以使用 INI 文件语法。有一个 Java 库可以处理这个问题。

如果您想要更通用的内容,请查看 JSON。有许多处理 JSON 的 Java 库。 (我喜欢 Jackson,因为它允许您将常规 Java bean 映射到 JSON。)

【讨论】:

【参考方案3】:

好的,感谢您的快速回复。我对事物进行了一些重组,这是我的 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>

【讨论】:

以上是关于xml 属性文件中的多个部分的主要内容,如果未能解决你的问题,请参考以下文章

从linux中的多个文件名中删除“-template”部分

请问有没有批量修改xml 文件的软件或工具!

要针对多个 xsd 模式验证 XML

SpringBoot中logback.xml使用application.yml中属性

如何在没有多个部分的情况下解析 MIME

请教关于solr schema.xml fieldtype 的几个属性含义的问题