【发布时间】:2014-07-10 10:34:46
【问题描述】:
我有一个加载了 XML 行的列表,它可以按照以下任何顺序排列...
<MAIN_TAG>
<TAG_ONE>22</TAG_ONE>
<TAG_TWO>2</TAG_TWO>
<TAG_THREE>junk</TAG_THREE>
<TAG_FOUR>8888</TAG_FOUR>
<TAG_FIVE>arcdf</TAG_FIVE>
<TAG_SIX>more junk</TAG_SIX>
</MAIN_TAG>
<MAIN_TAG>
<TAG_ONE>3</TAG_ONE>
<TAG_TWO>2</TAG_TWO>
<TAG_THREE>junk</TAG_THREE>
<TAG_FOUR>522</TAG_FOUR>
<TAG_FIVE>00561</TAG_FIVE>
<TAG_SIX>more junk</TAG_SIX>
</MAIN_TAG>
<MAIN_TAG>
<TAG_ONE>10</TAG_ONE>
<TAG_TWO>2</TAG_TWO>
<TAG_THREE>junk</TAG_THREE>
<TAG_FOUR>200</TAG_FOUR>
<TAG_FIVE>ggggg</TAG_FIVE>
<TAG_SIX>more junk</TAG_SIX>
</MAIN_TAG>
<MAIN_TAG>
<TAG_ONE>1</TAG_ONE>
<TAG_TWO>2</TAG_TWO>
<TAG_THREE>junk</TAG_THREE>
<TAG_FOUR>951</TAG_FOUR>
<TAG_FIVE>56756</TAG_FIVE>
<TAG_SIX>more junk</TAG_SIX>
</MAIN_TAG>
<MAIN_TAG>
<TAG_ONE>35</TAG_ONE>
<TAG_TWO>2</TAG_TWO>
<TAG_THREE>junk</TAG_THREE>
<TAG_FOUR>071</TAG_FOUR>
<TAG_FIVE>ds15s</TAG_FIVE>
<TAG_SIX>more junk</TAG_SIX>
</MAIN_TAG>
<MAIN_TAG>
<TAG_ONE>2</TAG_ONE>
<TAG_TWO>2</TAG_TWO>
<TAG_THREE>junk</TAG_THREE>
<TAG_FOUR>071</TAG_FOUR>
<TAG_FIVE>34534</TAG_FIVE>
<TAG_SIX>more junk</TAG_SIX>
</MAIN_TAG>
<MAIN_TAG>
<TAG_ONE>40</TAG_ONE>
<TAG_TWO>2</TAG_TWO>
<TAG_THREE>junk</TAG_THREE>
<TAG_FOUR>45</TAG_FOUR>
<TAG_FIVE>4rsss</TAG_FIVE>
<TAG_SIX>more junk</TAG_SIX>
</MAIN_TAG>
<MAIN_TAG>
<TAG_ONE>42</TAG_ONE>
<TAG_TWO>2</TAG_TWO>
<TAG_THREE>junk</TAG_THREE>
<TAG_FOUR>35</TAG_FOUR>
<TAG_FIVE>cdsss</TAG_FIVE>
<TAG_SIX>more junk</TAG_SIX>
</MAIN_TAG>
<MAIN_TAG>
<TAG_ONE>20</TAG_ONE>
<TAG_TWO>2</TAG_TWO>
<TAG_THREE>junk</TAG_THREE>
<TAG_FOUR>10</TAG_FOUR>
<TAG_FIVE>dssss</TAG_FIVE>
<TAG_SIX>more junk</TAG_SIX>
</MAIN_TAG>
<MAIN_TAG>
<TAG_ONE>30</TAG_ONE>
<TAG_TWO>2</TAG_TWO>
<TAG_THREE>junk</TAG_THREE>
<TAG_FOUR>1</TAG_FOUR>
<TAG_FIVE>dsdfe</TAG_FIVE>
<TAG_SIX>more junk</TAG_SIX>
</MAIN_TAG>
我希望能够根据用户传入的标签对这个 Java 列表进行排序。因此,以下内容将通过传入按“TAG_ONE”排序...
<MAIN_TAG>
<TAG_ONE>1</TAG_ONE>
<TAG_TWO>2</TAG_TWO>
<TAG_THREE>junk</TAG_THREE>
<TAG_FOUR>951</TAG_FOUR>
<TAG_FIVE>56756</TAG_FIVE>
<TAG_SIX>more junk</TAG_SIX>
</MAIN_TAG>
<MAIN_TAG>
<TAG_ONE>2</TAG_ONE>
<TAG_TWO>2</TAG_TWO>
<TAG_THREE>junk</TAG_THREE>
<TAG_FOUR>071</TAG_FOUR>
<TAG_FIVE>34534</TAG_FIVE>
<TAG_SIX>more junk</TAG_SIX>
</MAIN_TAG>
<MAIN_TAG>
<TAG_ONE>3</TAG_ONE>
<TAG_TWO>2</TAG_TWO>
<TAG_THREE>junk</TAG_THREE>
<TAG_FOUR>522</TAG_FOUR>
<TAG_FIVE>00561</TAG_FIVE>
<TAG_SIX>more junk</TAG_SIX>
</MAIN_TAG>
<MAIN_TAG>
<TAG_ONE>10</TAG_ONE>
<TAG_TWO>2</TAG_TWO>
<TAG_THREE>junk</TAG_THREE>
<TAG_FOUR>200</TAG_FOUR>
<TAG_FIVE>ggggg</TAG_FIVE>
<TAG_SIX>more junk</TAG_SIX>
</MAIN_TAG>
<MAIN_TAG>
<TAG_ONE>20</TAG_ONE>
<TAG_TWO>2</TAG_TWO>
<TAG_THREE>junk</TAG_THREE>
<TAG_FOUR>10</TAG_FOUR>
<TAG_FIVE>dssss</TAG_FIVE>
<TAG_SIX>more junk</TAG_SIX>
</MAIN_TAG>
<MAIN_TAG>
<TAG_ONE>22</TAG_ONE>
<TAG_TWO>2</TAG_TWO>
<TAG_THREE>junk</TAG_THREE>
<TAG_FOUR>8888</TAG_FOUR>
<TAG_FIVE>arcdf</TAG_FIVE>
<TAG_SIX>more junk</TAG_SIX>
</MAIN_TAG>
<MAIN_TAG>
<TAG_ONE>30</TAG_ONE>
<TAG_TWO>2</TAG_TWO>
<TAG_THREE>junk</TAG_THREE>
<TAG_FOUR>1</TAG_FOUR>
<TAG_FIVE>dsdfe</TAG_FIVE>
<TAG_SIX>more junk</TAG_SIX>
</MAIN_TAG>
<MAIN_TAG>
<TAG_ONE>35</TAG_ONE>
<TAG_TWO>2</TAG_TWO>
<TAG_THREE>junk</TAG_THREE>
<TAG_FOUR>071</TAG_FOUR>
<TAG_FIVE>ds15s</TAG_FIVE>
<TAG_SIX>more junk</TAG_SIX>
</MAIN_TAG>
<MAIN_TAG>
<TAG_ONE>40</TAG_ONE>
<TAG_TWO>2</TAG_TWO>
<TAG_THREE>junk</TAG_THREE>
<TAG_FOUR>45</TAG_FOUR>
<TAG_FIVE>4rsss</TAG_FIVE>
<TAG_SIX>more junk</TAG_SIX>
</MAIN_TAG>
<MAIN_TAG>
<TAG_ONE>42</TAG_ONE>
<TAG_TWO>2</TAG_TWO>
<TAG_THREE>junk</TAG_THREE>
<TAG_FOUR>35</TAG_FOUR>
<TAG_FIVE>cdsss</TAG_FIVE>
<TAG_SIX>more junk</TAG_SIX>
</MAIN_TAG>
但如果可以选择按“TAG_FOUR”进行排序就好了。
提前感谢您的帮助。
斯塔克萨姆斯
【问题讨论】:
-
使用 XML 解析器将其转换为对象列表,然后使用各种比较器对各个字段上的对象列表进行排序。
-
基本思路:1.解析xml 2.对解析后的xml创建的对象进行排序 3.从排序后的对象列表中生成xml。
-
感谢大家的帮助和建议 :)