请建议我阅读XML文件及其标签。我能够检索标签的包含但不能检索标签名称。
代码段:
FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
try {
List<FileItem> fields = upload.parseRequest(request);
out.println("Number of fields: " + fields.size() + "<br/><br/>");
Iterator<FileItem> it = fields.iterator();
if (!it.hasNext()) {
out.println("No fields found");
return;
}
out.println("<table border=\"1\">");
while (it.hasNext()) {
out.println("<tr>");
FileItem fileItem = it.next();
boolean isFormField = fileItem.isFormField();
if (isFormField) {
out.println("<td>regular form field</td><td>FIELD NAME: " + fileItem.getFieldName() + "<br/>STRING: " + fileItem.getString());
out.println("</td>");
} else {
out.println("<td>file form field</td><td>FIELD NAME: " + fileItem.getFieldName() +
"<br/>STRING: " + fileItem.getString() +
"<br/>NAME: " + fileItem.getName() +
"<br/>CONTENT TYPE: " + fileItem.getContentType() +
"<br/>SIZE (BYTES): " + fileItem.getSize() +
"<br/>TO STRING: " + fileItem.toString()
);
out.println("</td>");
}
使用的XML:
<?xml version="1.0"?>
-<students>
-<student>
<name>John</name>
<grade>B</grade>
<age>12</age>
</student>
-<student>
<name>Mary</name>
<grade>A</grade>
<age>11</age>
</student>
-<student>
<name>Simon</name>
<grade>A</grade>
<age>18</age>
</student>
</students>
输出:
FIELD NAME: Browse
STRING: - John B 12 Mary A 11 Simon A 18
NAME: Samplexml.xml
CONTENT TYPE: text/xml
SIZE (BYTES): 313
TO STRING: name=Samplexml.xml,StoreLocation=C:\Users\Bramesh\AppData\Local\Temp\upload_1aa898c7_7c38_4e32_958b_25efcf0b37c8_00000000.tmp, size=313 bytes, isFormField=false, FieldName=Browse
答案 0 :(得分:0)
如果你有一个xml架构,最简单的方法就是使用JAXB,只需要做一点工作就可以将流解组为一堆代表你的xml的对象。如果您没有架构,那么可以使用sax解析器来完成。有关如何使用sax解析器读取xml的教程,请参阅http://www.mkyong.com/java/how-to-read-xml-file-in-java-sax-parser/。 使用上面的示例,您将调用getInputStream(),然后将其传递给SAXParser,并使用处理程序提取元素及其值的信息。