diypyh
2015-11-13 09:29
采纳率: 16.7%
浏览 2.1k

求XML解析成JAVA对象工具

系统中有N多个XML文件,文件的格式如下:

 <?xml version="1.0" encoding="UTF-8"?>
 <plugin xmlns="http://www.example.org/plugin-config" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

<!-- 扩展点定义 -->
<extension-point id="com.smart.point1">
    <item name="myItme1">
        <param name="params1" kind="string" required="true">
            <description>参数说明1</description>
        </param>
        <param name="params2" kind="int" required="false">
            <description>参数说明2</description>
        </param>
        <param name="params3" kind="string">
            <description>参数说明3</description>
        </param>
        <description>ITEM说明1</description>
    </item>
    <item name="myItme2">
        <param name="params1" kind="string" required="true">
            <description>参数说明1</description>
        </param>
        <param name="params2" kind="int">
            <description>参数说明2</description>
        </param>
        <description>ITEM说明2</description>
    </item>
    <description>扩展点说明</description>
</extension-point>

<!-- 扩展点实现 -->
<extension point="com.smart.point1">
    <item name="myItme2">
        <param name="params1" value="这里是参数值1"/>
        <param name="params2" value="100"/>
    </item>
</extension>

<!-- 扩展点实现 -->
<extension point="com.smart.point1">
    <item name="myItme2">
        <param name="params1" value="henry"/>
        <param name="params2" value="500"/>
    </item>
</extension>

文件2:

 <?xml version="1.0" encoding="UTF-8"?>
 <plugin xmlns="http://www.example.org/plugin-config" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

<!-- 扩展点实现 -->
<extension point="com.smart.point1">
    <item name="myItme1">
        <param name="params1" value="hello"/>
        <param name="params3" value="50"/>
    </item>
</extension>

说明:
1. XML中存在有两个大类:extension-point(扩展点)和extension(扩展实现)。
2. extension-point(扩展点)节点有ID属性(全局唯一),extension(扩展实现)有point属性(此属性指向前者的ID属性)。
3. 无论是extension-point(扩展点)或extension(扩展实现)节点下,都有多个item子节点,此item节点只有一个name属性。
4. 在extension-point(扩展点)的item节点下,有多个param子节点,此节点有三个属性:name,就是名称,在此item节点中唯一。kind,是指在JAVA中的类型(如:string,int,date...)。required,是指此param是否是必须,默认为false
5. 在extension(扩展实现)的item节点下,也有多个param子节点,分别对应第4点中的param,只是属性只有2个:name,对应第4点中的name属性,value,指此属性的值,类型为第4点中定义的kind。注意:如果第4点中定义的param是required="true",那么此param节点就必须定义,否则可以不写。
6. extension-point(扩展点)中的description节点不需要处理。

要求:
1. 使用JAVA加载并解析所有的XML文件。
2. 提供一个工具类来获取XML文件中的数据。
2.1 如工具类:XMLLoader.java
2.2 通过工具类能获取到所有的扩展点数据:ExtensionPoint[] point = XMLLoader.getExtensionPoint();
2.3 根据扩展点ID获取某个扩展点:ExtensionPoint point = XMLLoader.getExtensionPoint(pointId);
2.4 获取某个扩展点的所有扩展实现:Extension[] extensions = point.getExtensions();
2.5 根据item名称获取扩展实现中的某个扩展实现:Extension extension = point.getExtensions(itemName);

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • ITDragon龙 2015-11-13 14:00

    我有解析xml和json的工具类,但是在公司电脑上,如果有需要可以密我,工具类只做参考。

    点赞 评论

相关推荐 更多相似问题