Java 对XML数据进行排序
我正在使用Java构建XML代码。请参阅我的代码片段Java 对XML数据进行排序,java,Java,我正在使用Java构建XML代码。请参阅我的代码片段 Document document = null; String xml = ""; ReportsDAO objReportsDAO = null; try { logger.info("Getting XML data for Consumable Report Starts..."); objReportsDAO = new ReportsDAO();
Document document = null;
String xml = "";
ReportsDAO objReportsDAO = null;
try
{
logger.info("Getting XML data for Consumable Report Starts...");
objReportsDAO = new ReportsDAO();
List consumableDTOLst = objReportsDAO.getConsumableData(issuedBy, issuedTo, employeeType, itemCode, itemName, className, transactionFromDate, transactionToDate, machineCode, workOrderNumber, jobName, customerId);
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
document = builder.newDocument();
Element rootElmnt = (Element) document.createElement("items");
document.appendChild(rootElmnt);
Element elmt = null;
ConsumableDTO objConsumableDTO = null;
SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy");
for (int i = 0; i < consumableDTOLst.size(); i++)
{
objConsumableDTO = (ConsumableDTO)consumableDTOLst.get(i);
elmt = (Element) document.createElement("item");
elmt.setAttribute("IssuedBy", objConsumableDTO.getIssuedBy());
elmt.setAttribute("IssuedTo", objConsumableDTO.getIssuedTo());
elmt.setAttribute("EMPLOYECADRE", objConsumableDTO.getEmployeeType());
elmt.setAttribute("ITEMCODE", objConsumableDTO.getItemCode());
elmt.setAttribute("ITEMNAME", objConsumableDTO.getItemName());
elmt.setAttribute("ITEMCLASS", objConsumableDTO.getClassName());
elmt.setAttribute("DATE", sdf.format(objConsumableDTO.getTransactionDate()));
elmt.setAttribute("machineCode", objConsumableDTO.getMachineCode());
elmt.setAttribute("JOB", objConsumableDTO.getJobName());
elmt.setAttribute("WORKORDERNUMBER", objConsumableDTO.getWorkOrderNumber());
elmt.setAttribute("CustomerName", objConsumableDTO.getCustomerName());
elmt.setAttribute("RoleName", objConsumableDTO.getGroupName());
elmt.setAttribute("VendorName", objConsumableDTO.getVendorName());
elmt.setAttribute("QTY", String.valueOf(Math.abs(objConsumableDTO.getQuantity())));
elmt.setAttribute("unitDescription", objConsumableDTO.getUnitDescription());
elmt.setAttribute("RATEPERQTY", String.valueOf(objConsumableDTO.getRate()));
elmt.setAttribute("AMOUNT", String.valueOf(objConsumableDTO.getAmount()));
rootElmnt.appendChild(elmt);
}
单据单据=null;
字符串xml=”“;
ReportsDAO objReportsDAO=null;
尝试
{
info(“获取耗材报告的XML数据开始…”);
objReportsDAO=新报告sdao();
List consumableDTOLst=objReportsDAO.getConsumableData(发布人、发布人、员工类型、项目代码、项目名称、类名、事务起始日期、事务截止日期、机器代码、工作序号、作业名称、客户ID);
DocumentBuilderFactory工厂=DocumentBuilderFactory.newInstance();
DocumentBuilder=factory.newDocumentBuilder();
document=builder.newDocument();
Element rootElmnt=(Element)document.createElement(“items”);
文件.appendChild(rootElmnt);
元素elmt=null;
ConsumableDTO objConsumableDTO=null;
SimpleDataFormat sdf=新的SimpleDataFormat(“MM/dd/yyyy”);
对于(int i=0;i
问题是所有属性都是自动排序的。如何限制它
例如
<empdetails age="25" name="john"/>
但是我想要
<empdetails name="john" age="25"/>
请提出一些想法
谢谢,XML属性没有顺序。它们的输出方式取决于您使用的XML输出机制
因此,您可以编写on-output机制,但不应依赖任何使用者以有序的方式使用它们。如果您想要/需要排序,则应在该节点下指定XML元素序列。XML属性没有顺序。它们的输出方式取决于您使用的XML输出机制
因此,您可以编写on-output机制,但不应依赖任何使用者以有序方式使用它们。如果您想要/需要排序,则应在该节点下指定一系列XML元素。重复:
发件人:
请看XML文档的第3.1节
建议,上面写着,“注意
属性规范的顺序
在开始标记或空元素标记中
不重要。”
如果一个软件需要
要显示的XML元素上的属性
按照特定的顺序,该软件是
不是在处理XML,而是在处理
表面上看起来像
它需要修复
如果无法修复,你必须
生成符合其属性的文件
需求,您无法可靠地使用
标准的XML工具来生成这些
档案
贷记至副本:
发件人:
请看XML文档的第3.1节
建议,上面写着,“注意
属性规范的顺序
在开始标记或空元素标记中
不重要。”
如果一个软件需要
要显示的XML元素上的属性
按照特定的顺序,该软件是
不是在处理XML,而是在处理
表面上看起来像
它需要修复
如果无法修复,你必须
生成符合其属性的文件
需求,您无法可靠地使用
标准的XML工具来生成这些
档案
归功于