<?xml version="1.0" encoding="UTF-8"?>
<kcbpspd>
<program acm="public" cache="yes" comment="" module="stkPtwtOderHgqlt" concurrence="-1" name="100100" node="0" path="..\lbm\lbm_stk.dll" perfmon="no" priority="1" rsl="1" servicestate="enable" servicetime="" timeout="60" type="biz" userexitnumber="" xa=""/>
<program acm="public" cache="yes" commet="" concurrence="-1" module="rptbsPreCheckHgqltdata" name="100102" node="0" path="..\lbm\lbm_rptbs.dll" perfmon="no" priority="1" rsl="1" servicestate="enable" servicetime="" timeout="60" type="biz" userexitnumber="" xa=""/>
<program acm="public" cache="yes" comment="" concurrence="-1" module="stkGsxwOrderFundStkFrzHgqlt" name="100103" node="0" path="..\lbm\lbm_stk.dll" perfmon="no" priority="1" rsl="1" servicestate="enable" servicetime="" timeout="60" type="biz" userexitnumber="" xa=""/>
<program acm="public" cache="yes" comment="" concurrence="-1" module="stkGsxwOrderFundStkUnfrzHgqlt" name="100104" node="0" path="..\lbm\lbm_stk.dll" perfmon="no" priority="1" rsl="1" servicestate="enable" servicetime="" timeout="60" type="biz" userexitnumber="" xa=""/>
</kcbpspd>
我想實作按照program 中的name進行排序,升序降序都可以,
希望有大神可以幫忙看看,有沒有合適的方法
uj5u.com熱心網友回復:
public static void main(String[] args) throws DocumentException {String a ="<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
"<kcbpspd>\n" +
" <program acm=\"public\" cache=\"yes\" comment=\"\" module=\"stkPtwtOderHgqlt\" concurrence=\"-1\" name=\"100100\" node=\"0\" path=\"..\\lbm\\lbm_stk.dll\" perfmon=\"no\" priority=\"1\" rsl=\"1\" servicestate=\"enable\" servicetime=\"\" timeout=\"60\" type=\"biz\" userexitnumber=\"\" xa=\"\"/>\n" +
" <program acm=\"public\" cache=\"yes\" commet=\"\" concurrence=\"-1\" module=\"rptbsPreCheckHgqltdata\" name=\"100102\" node=\"0\" path=\"..\\lbm\\lbm_rptbs.dll\" perfmon=\"no\" priority=\"1\" rsl=\"1\" servicestate=\"enable\" servicetime=\"\" timeout=\"60\" type=\"biz\" userexitnumber=\"\" xa=\"\"/>\n" +
" <program acm=\"public\" cache=\"yes\" comment=\"\" concurrence=\"-1\" module=\"stkGsxwOrderFundStkFrzHgqlt\" name=\"100103\" node=\"0\" path=\"..\\lbm\\lbm_stk.dll\" perfmon=\"no\" priority=\"1\" rsl=\"1\" servicestate=\"enable\" servicetime=\"\" timeout=\"60\" type=\"biz\" userexitnumber=\"\" xa=\"\"/>\n" +
" <program acm=\"public\" cache=\"yes\" comment=\"\" concurrence=\"-1\" module=\"stkGsxwOrderFundStkUnfrzHgqlt\" name=\"100104\" node=\"0\" path=\"..\\lbm\\lbm_stk.dll\" perfmon=\"no\" priority=\"1\" rsl=\"1\" servicestate=\"enable\" servicetime=\"\" timeout=\"60\" type=\"biz\" userexitnumber=\"\" xa=\"\"/>\n" +
"</kcbpspd>";
Document document = DocumentHelper.parseText(a);
Element rootElement = document.getRootElement();
List<Element> elements =rootElement.elements("program");
elements.sort((e1,e2) -> e2.attributeValue("name").compareTo(e1.attributeValue("name")));
Document retDoc = DocumentHelper.createDocument();
Element addElement = retDoc.addElement("kcbpspd");
for (Element element : elements) {
addElement.add((Element)element.clone());
}
System.out.println(retDoc.asXML());
}
按照name倒序排列。但我不建議你這樣做。根據xml的定義,同級節點本身是沒有順序的
uj5u.com熱心網友回復:
感謝qq_36201564您的回復,排序主要是為了后面實作兩個xml檔案對比差異的功能,想著按照指定的屬性排序之后可以忽略行的錯位這樣的差異,實在想不出兩個xml檔案對比差異有什么好的辦法,既要忽略錯行,又要忽略屬性的前后差異,空格,注釋等,而且這個只是其中的一個xml檔案,xml檔案的內容不可控性太大了,感謝您的回復轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/82218.html
標籤:Java相關
上一篇:SSM檔案上傳空指標例外
