XML数据录入工具

为了手机端使用XML数据库,写了一个xml录入工具。

XML格式如下:

<?xml version="1.0" encoding="gb2312"?>
<Trouble>
<Classification text="a" id="10000">
<Phenomena text="b" id="10100">
<Models text="c">
<Tips><![CDATA[d]]></Tips>
<Treatment><![CDATA[e]]></Treatment>
<Note><![CDATA[f]]></Note>
</Models>
</Phenomena>
</Classification>
</Trouble>

  1 using System;
  2 using System.Collections.Generic;
  3 using System.ComponentModel;
  4 using System.Data;
  5 using System.Diagnostics;
  6 using System.Drawing;
  7 using System.Linq;
  8 using System.Text;
  9 using System.Threading.Tasks;
 10 using System.Windows.Forms;
 11 using System.Xml;
 12 using System.Xml.Linq;
 13
 14 namespace XmlInput
 15 {
 16     public partial class Form1 : Form
 17     {
 18         private XDocument xdoc;
 19         private string xdocFilePath;
 20         private string currentClassification;
 21         private string currentPhenomena;
 22         private string currentModels;
 23
 24         private string AppName = "故障信息录入";
 25         private bool 修改 = false;
 26         public Form1()
 27         {
 28             InitializeComponent();
 29             RefreshAppName();
 30         }
 31
 32         private void RefreshAppName()
 33         {
 34             if (修改 == true)
 35             {
 36                 Text = AppName + "*";
 37             }
 38             else if (xdoc == null)
 39                 Text = AppName + " 未加载";
 40             else
 41                 Text = AppName;
 42         }
 43
 44         private void button1_Click(object sender, EventArgs e)
 45         {
 46             OpenFileDialog o = new OpenFileDialog();
 47             if (o.ShowDialog() == DialogResult.OK)
 48             {
 49                 textBox1.Text = xdocFilePath = o.FileName;
 50                 try
 51                 {
 52                     xdoc = XDocument.Load(xdocFilePath);
 53                     RefreshAppName();
 54                     RefreshTrouble();
 55                 }
 56                 catch (Exception ex)
 57                 {
 58                     xdoc = null;
 59                     RefreshAppName();
 60                     RefreshTrouble();
 61                     MessageBox.Show(ex.Message);
 62                 }
 63             }
 64         }
 65
 66         private void RefreshTrouble()
 67         {
 68             if (xdoc != null)
 69             {
 70                 listBox1.Items.Clear();
 71                 foreach (var p in xdoc.Element("Trouble").Elements("Classification"))
 72                 {
 73                     int i = listBox1.Items.Add(p.Attribute("text").Value);
 74                 }
 75                 RefreshClassification();
 76             }
 77             else
 78             {
 79                 currentClassification = null;
 80                 listBox1.Items.Clear();
 81                 RefreshClassification();
 82             }
 83         }
 84
 85         private void RefreshClassification()
 86         {
 87             if (xdoc != null)
 88             {
 89                 if (listBox1.SelectedIndex != -1)
 90                 {
 91                     listBox2.Items.Clear();
 92                     string select1 = (string)listBox1.SelectedItem;
 93                     var all = xdoc.Element("Trouble").Elements("Classification").Where(o => o.Attribute("text").Value == select1).First().Elements("Phenomena");
 94                     foreach (var p in all)
 95                     {
 96                         int i = listBox2.Items.Add(p.Attribute("text").Value);
 97                     }
 98                     currentClassification = (string)listBox1.SelectedItem;
 99                 }
100                 else
101                 {
102                     currentClassification = null;
103                     listBox2.Items.Clear();
104                 }
105                 RefreshPhenomena();
106             }
107             else
108             {
109                 currentPhenomena = null;
110                 listBox2.Items.Clear();
111                 RefreshPhenomena();
112             }
113         }
114
115         private void RefreshPhenomena()
116         {
117             if (xdoc != null)
118             {
119                 if (listBox2.SelectedIndex != -1)
120                 {
121                     listBox3.Items.Clear();
122                     string select1 = (string)listBox1.SelectedItem;
123                     string select2 = (string)listBox2.SelectedItem;
124                     var all = xdoc.Element("Trouble").Elements("Classification").Where(o => o.Attribute("text").Value == select1).First().Elements("Phenomena").Where(o => o.Attribute("text").Value == select2).First().Elements("Models");
125                     foreach (var p in all)
126                     {
127                         listBox3.Items.Add(p.Attribute("text").Value);
128                     }
129                     currentPhenomena = (string)listBox2.SelectedItem;
130                 }
131                 else
132                 {
133                     currentPhenomena = null;
134                     listBox3.Items.Clear();
135                 }
136                 RefreshModels();
137             }
138             else
139             {
140                 currentModels = null;
141                 listBox3.Items.Clear();
142                 RefreshModels();
143             }
144         }
145
146         private void RefreshModels()
147         {
148             if (xdoc != null)
149             {
150                 if (listBox3.SelectedIndex != -1)
151                 {
152
153                     string select1 = (string)listBox1.SelectedItem;
154                     string select2 = (string)listBox2.SelectedItem;
155                     string select3 = (string)listBox3.SelectedItem;
156                     var all = xdoc.Element("Trouble")
157                         .Elements("Classification").Where(o => o.Attribute("text").Value == select1)
158                         .First().Elements("Phenomena").Where(o => o.Attribute("text").Value == select2)
159                         .First().Elements("Models").Where(o => o.Attribute("text").Value == select3)
160                         .First();
161
162                     textBox2.Enabled = true;
163                     textBox3.Enabled = true;
164                     textBox4.Enabled = true;
165
166                     if (all.Elements("Tips").Count() > 0)
167                     {
168                         XCData Tips = all.Element("Tips").DescendantNodes().First() as XCData;
169                         textBox2.Text = Tips.Value;
170                     }
171                     else
172                         textBox2.Text = "";
173
174                     if (all.Elements("Treatment").Count() > 0)
175                     {
176                         XCData Treatment = all.Element("Treatment").DescendantNodes().First() as XCData;
177                         textBox3.Text = Treatment.Value;
178                     }
179                     else
180                         textBox3.Text = "";
181
182                     if (all.Elements("Note").Count() > 0)
183                     {
184                         XCData Note = all.Element("Note").DescendantNodes().First() as XCData;
185                         textBox4.Text = Note.Value;
186                     }
187                     else
188                         textBox4.Text = "";
189
190                     currentModels = (string)listBox3.SelectedItem;
191                 }
192                 else
193                 {
194                     currentModels = null;
195                     textBox2.Text = "";
196                     textBox3.Text = "";
197                     textBox4.Text = "";
198                     textBox2.Enabled = false;
199                     textBox3.Enabled = false;
200                     textBox4.Enabled = false;
201
202                 }
203             }
204             else
205             {
206                 textBox2.Text = "";
207                 textBox3.Text = "";
208                 textBox4.Text = "";
209                 textBox2.Enabled = false;
210                 textBox3.Enabled = false;
211                 textBox4.Enabled = false;
212             }
213         }
214
215         private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
216         {
217             RefreshClassification();
218         }
219
220         private void listBox2_SelectedIndexChanged(object sender, EventArgs e)
221         {
222             RefreshPhenomena();
223         }
224
225         private void listBox3_SelectedIndexChanged(object sender, EventArgs e)
226         {
227             RefreshModels();
228         }
229
230         private void textBox2_Leave(object sender, EventArgs e)
231         {
232             Debug.WriteLine(string.Format("保存{0}:{1}:{2}", currentClassification, currentPhenomena, currentModels));
233             if (currentModels != null)
234             {
235                 var all = xdoc.Element("Trouble")
236                            .Elements("Classification").Where(o => o.Attribute("text").Value == currentClassification)
237                            .First().Elements("Phenomena").Where(o => o.Attribute("text").Value == currentPhenomena)
238                            .First().Elements("Models").Where(o => o.Attribute("text").Value == currentModels)
239                            .First();
240                 if (all.Elements("Tips").Count() == 0)
241                 {
242                     var xcd = new XCData("");
243                     var tips = new XElement("Tips");
244                     tips.Add(xcd);
245                     all.Add(tips);
246                 }
247                 (all.Element("Tips").DescendantNodes().First() as XCData).Value = textBox2.Text;
248
249                 修改 = true;
250                 RefreshAppName();
251             }
252         }
253
254         private void textBox3_Leave(object sender, EventArgs e)
255         {
256             Debug.WriteLine(string.Format("保存{0}:{1}:{2}", currentClassification, currentPhenomena, currentModels));
257             if (currentModels != null)
258             {
259                 var all = xdoc.Element("Trouble")
260                     .Elements("Classification").Where(o => o.Attribute("text").Value == currentClassification)
261                     .First().Elements("Phenomena").Where(o => o.Attribute("text").Value == currentPhenomena)
262                     .First().Elements("Models").Where(o => o.Attribute("text").Value == currentModels)
263                     .First();
264
265                 if (all.Elements("Treatment").Count() == 0)
266                 {
267                     var xcd = new XCData("");
268                     var tips = new XElement("Treatment");
269                     tips.Add(xcd);
270                     all.Add(tips);
271                 }
272                 (all.Element("Treatment").DescendantNodes().First() as XCData).Value = textBox3.Text;
273
274                 修改 = true;
275                 RefreshAppName();
276             }
277         }
278
279         private void textBox4_Leave(object sender, EventArgs e)
280         {
281             Debug.WriteLine(string.Format("保存{0}:{1}:{2}", currentClassification, currentPhenomena, currentModels));
282             if (currentModels != null)
283             {
284                 var all = xdoc.Element("Trouble")
285                     .Elements("Classification").Where(o => o.Attribute("text").Value == currentClassification)
286                     .First().Elements("Phenomena").Where(o => o.Attribute("text").Value == currentPhenomena)
287                     .First().Elements("Models").Where(o => o.Attribute("text").Value == currentModels)
288                     .First();
289
290                 if (all.Elements("Note").Count() == 0)
291                 {
292                     var xcd = new XCData("");
293                     var tips = new XElement("Note");
294                     tips.Add(xcd);
295                     all.Add(tips);
296                 }
297                 (all.Element("Note").DescendantNodes().First() as XCData).Value = textBox4.Text;
298
299                 修改 = true;
300                 RefreshAppName();
301             }
302         }
303
304         private void button2_Click(object sender, EventArgs e)
305         {
306             //SaveFileDialog o = new SaveFileDialog();
307             //if (o.ShowDialog() == DialogResult.OK)
308             //{
309             //    xdoc.Save(o.FileName);
310             //}
311             xdoc.Save(xdocFilePath);
312
313             修改 = false;
314             RefreshAppName();
315
316         }
317
318         private string GetMaxIdInClassification()
319         {
320             int maxid = 0;
321             var f = xdoc.Element("Trouble").Elements("Classification");
322             if (f.Count() > 0)
323             {
324                 foreach (var p in f)
325                 {
326                     int m;
327                     if (p.Attribute("id") != null)
328                         if (int.TryParse(p.Attribute("id").Value, out m))
329                         {
330                             if (m > maxid)
331                                 maxid = m;
332                         }
333                 }
334             }
335             return maxid.ToString();
336         }
337
338         private string GetMaxIdInPhenomena(string cid)
339         {
340             int maxid = 0;
341             var f = xdoc.Element("Trouble").Elements("Classification").Where(o => o.Attribute("text").Value == cid);
342             if (f.Count() > 0)
343             {
344                 var p = f.First().Elements("Phenomena");
345                 if (p.Count() > 0)
346                 {
347                     foreach (var i in p)
348                     {
349                         int m;
350                         if (i.Attribute("id") != null)
351                             if (int.TryParse(i.Attribute("id").Value, out m))
352                             {
353                                 if (m > maxid)
354                                     maxid = m;
355                             }
356                     }
357                 }
358                 else
359                 {
360                     int m;
361                     if (f.First().Attribute("id") != null)
362                         if (int.TryParse(f.First().Attribute("id").Value, out m))
363                         {
364                             if (m > maxid)
365                                 maxid = m;
366                         }
367                 }
368             }
369             return maxid.ToString();
370         }
371
372
373         private void 添加故障分类ToolStripMenuItem_Click(object sender, EventArgs e)
374         {
375             InputForm input = new InputForm("请输入故障分类");
376             if (xdoc != null)
377             {
378                 if (input.ShowDialog() == DialogResult.OK)
379                 {
380                     listBox1.Items.Add(input.InputText);
381
382                     XElement Classification = new XElement("Classification");
383                     Classification.SetAttributeValue("text", input.InputText);
384                     Classification.SetAttributeValue("id", (int.Parse(GetMaxIdInClassification()) + 10000).ToString());
385                     xdoc.Element("Trouble").Add(Classification);
386
387                     修改 = true;
388                     RefreshAppName();
389                 }
390             }
391         }
392
393         private void 删除故障分类ToolStripMenuItem_Click(object sender, EventArgs e)
394         {
395             if (xdoc != null)
396             {
397                 string select = (string)listBox1.SelectedItem;
398
399                 var f = xdoc.Element("Trouble").Elements("Classification")
400                     .Where(o => o.Attribute("text").Value == select);
401                 f.Remove();
402                 listBox1.SelectedIndex = -1;
403                 RefreshTrouble();
404
405                 修改 = true;
406                 RefreshAppName();
407
408             }
409         }
410
411         private void 添加故障现象ToolStripMenuItem_Click(object sender, EventArgs e)
412         {
413             InputForm input = new InputForm("请输入故障现象");
414             if (xdoc != null && currentClassification != null)
415             {
416                 if (input.ShowDialog() == DialogResult.OK)
417                 {
418                     listBox2.Items.Add(input.InputText);
419
420                     XElement Phenomena = new XElement("Phenomena");
421                     Phenomena.SetAttributeValue("text", input.InputText);
422                     Phenomena.SetAttributeValue("id", (int.Parse(GetMaxIdInPhenomena(currentClassification)) + 100).ToString());
423                     xdoc.Element("Trouble").Elements("Classification")
424                         .Where(o => o.Attribute("text").Value == currentClassification).First()
425                         .Add(Phenomena);
426
427                     修改 = true;
428                     RefreshAppName();
429                 }
430             }
431         }
432
433         private void 删除故障现象ToolStripMenuItem_Click(object sender, EventArgs e)
434         {
435             if (xdoc != null && currentClassification != null)
436             {
437                 string select = (string)listBox2.SelectedItem;
438
439                 var f = xdoc.Element("Trouble").Elements("Classification")
440                     .Where(o => o.Attribute("text").Value == currentClassification).First()
441                     .Elements("Phenomena")
442                     .Where(o => o.Attribute("text").Value == currentPhenomena);
443                 f.Remove();
444                 listBox2.SelectedIndex = -1;
445                 RefreshClassification();
446
447                 修改 = true;
448                 RefreshAppName();
449             }
450         }
451
452         private void 添加车型ToolStripMenuItem_Click(object sender, EventArgs e)
453         {
454             InputForm input = new InputForm("请输入故障车型");
455             if (xdoc != null && currentPhenomena != null)
456             {
457                 if (input.ShowDialog() == DialogResult.OK)
458                 {
459                     listBox3.Items.Add(input.InputText);
460
461                     XElement Models = new XElement("Models");
462                     Models.SetAttributeValue("text", input.InputText);
463                     //Phenomena.SetAttributeValue("id", (int.Parse(GetMaxIdInPhenomena(currentClassification)) + 1).ToString());
464                     xdoc.Element("Trouble").Elements("Classification")
465                     .Where(o => o.Attribute("text").Value == currentClassification).First()
466                     .Elements("Phenomena")
467                     .Where(o => o.Attribute("text").Value == currentPhenomena).First()
468                     .Add(Models);
469
470                     修改 = true;
471                     RefreshAppName();
472                 }
473             }
474         }
475
476         private void 删除车型ToolStripMenuItem_Click(object sender, EventArgs e)
477         {
478             if (xdoc != null && currentPhenomena != null)
479             {
480                 string select = (string)listBox3.SelectedItem;
481
482                 var f = xdoc.Element("Trouble").Elements("Classification")
483                     .Where(o => o.Attribute("text").Value == currentClassification).First()
484                     .Elements("Phenomena")
485                     .Where(o => o.Attribute("text").Value == currentPhenomena).First()
486                     .Elements("Models").Where(o => o.Attribute("text").Value == currentModels);
487                 f.Remove();
488                 listBox3.SelectedIndex = -1;
489                 RefreshModels();
490
491                 修改 = true;
492                 RefreshAppName();
493             }
494         }
495
496         private void 重置分类IDToolStripMenuItem_Click(object sender, EventArgs e)
497         {
498             if (xdoc != null)
499             {
500                 int id = 10000;
501                 foreach (var eachClassification in xdoc.Element("Trouble").Elements("Classification"))
502                 {
503                     XAttribute a = eachClassification.Attribute("id");
504                     if (a == null)
505                         eachClassification.SetAttributeValue("id", id.ToString());
506                     else
507                         eachClassification.Attribute("id").Value = id.ToString();
508                     id += 10000;
509
510
511                 }
512
513                 修改 = true;
514                 RefreshAppName();
515             }
516         }
517
518         private void 重置现象IDToolStripMenuItem_Click(object sender, EventArgs e)
519         {
520             if (xdoc != null)
521             {
522                 var f = xdoc.Element("Trouble").Elements("Classification").Where(o => o.Attribute("text").Value == currentClassification).First();
523                 XAttribute pa = f.Attribute("id");
524                 if (pa != null)
525                 {
526                     int id = int.Parse(pa.Value) + 100;
527                     foreach (var eachPhenomena in f.Elements("Phenomena"))
528                     {
529                         XAttribute a = eachPhenomena.Attribute("id");
530                         if (a == null)
531                             eachPhenomena.SetAttributeValue("id", id.ToString());
532                         else
533                             eachPhenomena.Attribute("id").Value = id.ToString();
534                         id += 100;
535                     }
536                 }
537                 else
538                 {
539                     MessageBox.Show(string.Format("{0}没有ID值", f.Attribute("text").Value));
540                 }
541
542                 修改 = true;
543                 RefreshAppName();
544             }
545         }
546
547         private void 重置车型IDToolStripMenuItem_Click(object sender, EventArgs e)
548         {
549             if (xdoc != null)
550             {
551                 var f = xdoc.Element("Trouble").Elements("Classification").Where(o => o.Attribute("text").Value == currentClassification).First().Elements("Phenomena").Where(o => o.Attribute("text").Value == currentPhenomena).First();
552                 XAttribute pa = f.Attribute("id");
553                 if (pa != null)
554                 {
555                     int id = int.Parse(pa.Value) + 1;
556                     foreach (var eachModels in f.Elements("Models"))
557                     {
558                         XAttribute a = eachModels.Attribute("id");
559                         if (a == null)
560                             eachModels.SetAttributeValue("id", id.ToString());
561                         else
562                             eachModels.Attribute("id").Value = id.ToString();
563                         id += 100;
564                     }
565                 }
566                 else
567                 {
568                     MessageBox.Show(string.Format("{0}没有ID值", f.Attribute("text").Value));
569                 }
570
571                 修改 = true;
572                 RefreshAppName();
573             }
574         }
575
576         private void 重置所有IDToolStripMenuItem_Click(object sender, EventArgs e)
577         {
578             ResetAllID();
579         }
580
581         private void 重置所有IDToolStripMenuItem1_Click(object sender, EventArgs e)
582         {
583             ResetAllID();
584         }
585
586         private void 重置所有IDToolStripMenuItem2_Click(object sender, EventArgs e)
587         {
588             ResetAllID();
589         }
590
591         private void ResetAllID()
592         {
593             if (xdoc != null)
594             {
595                 int cid = 10000;
596                 foreach (var eachClassification in xdoc.Element("Trouble").Elements("Classification"))
597                 {
598                     XAttribute xac = eachClassification.Attribute("id");
599                     if (xac == null)
600                         eachClassification.SetAttributeValue("id", cid);
601                     else
602                         eachClassification.Attribute("id").Value = cid.ToString();
603
604                     int pid = cid + 100;
605                     foreach (var eachPhenomena in eachClassification.Elements("Phenomena"))
606                     {
607                         XAttribute xap = eachPhenomena.Attribute("id");
608                         if (xap == null)
609                             eachPhenomena.SetAttributeValue("id", pid);
610                         else
611                             eachPhenomena.Attribute("id").Value = pid.ToString();
612
613                         int mid = pid + 1;
614                         foreach (var eachModels in eachPhenomena.Elements("Models"))
615                         {
616                             XAttribute xam = eachModels.Attribute("id");
617                             if (xam == null)
618                                 eachModels.SetAttributeValue("id", mid);
619                             else
620                                 eachModels.Attribute("id").Value = mid.ToString();
621                             mid++;
622
623                         }
624                         pid += 100;
625
626                     }
627                     cid += 10000;
628
629                 }
630
631                 修改 = true;
632                 RefreshAppName();
633
634             }
635         }
636     }
637 }
时间: 2025-01-16 05:22:21

XML数据录入工具的相关文章

比较全的XML系列工具 可以轻松实现排版、转换和打印!

XML系列 -------------------------------------------------------------------------------- 1.Xsl Formatter-XML可视化工具 是根据W3C策划并推广的xsL式样开发的XML排版和打印转换软件,可以很好的显示和打印XML文档,并可将其转换为PDF文件. 功能: (1)实现XSL样式的排版功能,可将xml内容多版面显示,实现内容精准打印. (2)可以向PDF文件格式转换,在无Adobo Acrobat环

XML编辑工具

[标题]XML编辑工具 [开发环境]Qt 5.2.0,  C++ [概要设计]使用QT的视图/模型结构.treeview控件以树形结构显示所要操作的XML文件,并实现修改和保存功能 [详细设计] 主要包含 node.h(节点类).model.h(模型类).xml.h(xml操作类) node.h文件 使用两个Qstring字符串变量作为类成员,分别用于表示XML文件的节点名和节点值,一个Node节点表示父节点和一个Qlist列表用于存储孩子节点 #ifndef NODE_H #define NO

Java中XML解析工具范例

1.直接代码部分: 1 import java.io.File; 2 import java.io.FileInputStream; 3 import java.util.List; 4 import org.jdom.Document; 5 import org.jdom.Element; 6 import org.jdom.input.SAXBuilder; 7 import org.xml.sax.InputSource; 8 9 /** 10 * 作用: XML解析工具类,其中的属性根据

JSON对象与XML相互转换工具类

依赖jar <dependency> <groupId>dom4j</groupId> <artifactId>dom4j</artifactId> <version>1.6.1</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</

Java 生成Xml轻量级工具

只想简单的生成一个xml字符串, 发现找不到合适的方案, 于是从国外c语言生成xml工具翻译了一个过来.原文链接 package nc.vo.yceai.pub; import java.util.Stack; import java.util.Vector; /**  * 目标: 返回一个xml文本  * 原因: 用字符串拼凑太麻烦, Dom太重量级, 提供一个介于中间的生成xml工具  *   * @version V5.0  * @author wuzq  * @date   2014-1

Java操作XML的工具:JAXB

JavaArchitecture for XML Binding (JAXB) 是一个业界的标准,是一项可以根据XML Schema产生Java类的技术.该过程中,JAXB也提供了将XML实例文档反向生成Java对象树的方法,并能将Java对象树的内容重新写到XML实例文档.从另一方面来讲,JAXB提供了快速而简便的方法将XML模式绑定到Java表示,从而使得Java开发者在Java应用程序中能方便地结合XML数据和处理函数. 这意味着你不需要处理甚至不需要知道XML编程技巧就能在Java应用程

【Web基础】XML解析工具比较

DOM解析: 一次全部读入内存,随意存放修改,读取任何部分,次数无限制,异于开发,系统为开发者自动建立DOM树,XML对象模型由系统自动提供.缺点:需要一次读入内存,受文件大小限制,耗内存. SAX解析: 优点:顺序读入一部分进内存,不会一次加载,不受文件限制,由于部分读取.缺点:只能对文件按顺序读取解析,不能随机存取,不能修改,开发复杂,用户需自己定义时间处理.但开发比较灵活,可以用SAX建立自己的XML对象模型. JDOM:综合DOM解析和SAX解析的优点. DOM4J:强大,Hiberna

XStream-----把JavaBean转换为xml的工具

1. 什么作用 可以把JavaBean转换为(序列化为)xml 2. XStream的jar包 核心JAR包:xstream-1.4.7.jar: 必须依赖包:xpp3_min-1.1.4c(XML Pull Parser,一款速度很快的XML解析器): 3. 使用步骤 XStream xstream = new XStream(); String xmlStr = xstream.toXML(javabean); 4. 使用细节 别名:把类型对应的元素名修改了 xstream.alias("c

XML解析工具类

public class XmlUtil { /* * 利用dom4j解析xml文件内容,并返回map数据形式 * path是.xml文件所在的路径 */ public static Map<String,String> paserXmlByDOM4J(String path) throws Exception{ path=ServletActionContext.getServletContext().getRealPath(path); SAXReader reader = new SAX