【问题标题】:How do i map xml attribute values to keys in properties file?如何将 xml 属性值映射到属性文件中的键?
【发布时间】:2014-09-06 20:10:12
【问题描述】:

这是我的 test.xml 文件:

<?xml version="1.0" encoding="UTF-8"?>

<Class name="AirwayBill">
    <Attribute name="billNo" primary="true" />
    <Attribute name="date" primary="true" />
    <Attribute name="person" class_name="Person" />
</Class>
<Class name="Person">
    <Attribute name="perId" primary="true" />
    <Attribute name="fname" primary="false" />
    <Attribute name="lname" primary="false" />

还有一个.properties 文件包含键值对,例如billNO=12345date=16/07/2014.
我想在属性和 xml 文件中的每个对应键之间映射属性。
我怎么做? 我可以同时读取属性值和键,并将每一个都存储在一个列表中。

【问题讨论】:

  • 我很困惑,您介意改写问题吗?您想将属性文件中的数据转换为 XML 吗?或 XML 到属性文件?我在您的问题中看到了一个示例 XML,但它与您的问题有什么关系? “地图”这个词太模糊了。
  • List 在这种情况下不是一个非常有用的集合。如果您将属性加载到 (Hash)Map 中,您将更容易获取正确的信息。
  • billNo = 1234 日期 = 25/07/2014 perid=12 fname = avc lname = gfrefe billNo = 1235 日期 = 28/07/2014 perid=13 fname = wss lname = gfds 这是我的 .属性文件。我想映射,因为我的意思是说我想将属性文件中的键标记为 xml 属性。为此,我只需要存储键而不是它们的值吗?那是 y m 使用 Set 从属性文件中只读键(而不是值)。并且 m 将 xml 属性名称存储在 List 中。现在我的问题是如何将存储在列表中的这些属性与存储在集合中的键关联起来

标签: java xml properties-file


【解决方案1】:

如果你想要这样的东西:

<someBean>
    <properties>
        <myProperty1>My Value 1</myProperty1>
        <myProperty2>My Value 1</myProperty2>
    </properties>
</someBean>

对于地图:

My Property 1    My Value 1 
My Property 2    My Value 2

代码:

@XmlAnyElement
public List<JAXBElement<String>> getXmlProperties() {
    List<JAXBElement<String>> elements = new ArrayList<JAXBElement<String>>();

    for (Map.Entry<String, String> property: properties.entrySet()) {
        elements.add(new JAXBElement<String>(new QName(property.getKey()), 
            String.class, property.getValue()));
    }

    return elements;
}

此链接可能对您有用:Use JAXB XMLAnyElement type of style to return dynamic element names

【讨论】:

  • 虽然理论上这可以回答这个问题,it would be preferable 在这里包含答案的基本部分,并提供链接以供参考。
  • @GhostCat 哦,对不起...我是新来在stackoverflow中发布答案的,这就是原因。从现在开始,我一定会考虑这个。 :)
猜你喜欢
  • 2018-09-15
  • 1970-01-01
  • 2014-07-12
  • 2023-04-07
  • 1970-01-01
  • 1970-01-01
  • 2012-02-15
  • 2019-12-18
  • 1970-01-01
相关资源
最近更新 更多