有如下的XML  <?xml version="1.0" ?> 
 <mdc xmlns:HTML="http://www.w3.org/TR/REC-xml">
 <mfh>
  <ffv>32.401 V6.2</ffv> 
  <sn>SubNetwork=ONRM_ROOT_MO_R,SubNetwork=WXRNC02,MeContext=WXAWi6385</sn> 
  <st /> 
  <vn /> 
  <cbt>20091105084500Z</cbt> 
  </mfh>
  <md>
  <neid>
  <neun>WXAWi6385</neun> 
  <nedn>SubNetwork=ONRM_ROOT_MO_R,SubNetwork=WXRNC02,MeContext=WXAWi6385</nedn> 
  <nesw>CXP9012959/1_R6BN03</nesw> 
  </neid>
  <mi>
  <mts>20091105090000Z</mts> 
  <gp>900</gp> 
  <mt>pmAverageRssi</mt> 
  <mt>pmTransmittedCarrierPower</mt> 
  <mv>
  <moid>ManagedElement=1,NodeBFunction=1,Sector=4,Carrier=1</moid> 
  <r>0,0,0,0,0,0,0,0,0,9000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0</r> 
  <r>0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8190,809,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0</r> 
  </mv>
- <mv>
  <moid>ManagedElement=1,NodeBFunction=1,Sector=1,Carrier=1</moid> 
  <r>0,0,0,0,0,0,0,0,0,0,8998,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0</r> 
  <r>0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0</r> 
  </mv>
- <mv>
  <moid>ManagedElement=1,NodeBFunction=1,Sector=5,Carrier=1</moid> 
  <r>0,0,0,0,0,0,0,0,0,8999,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0</r> 
  <r>0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8242,758,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0</r> 
  </mv>
- <mv>
  <moid>ManagedElement=1,NodeBFunction=1,Sector=2,Carrier=1</moid> 
  <r>0,0,0,0,0,0,0,0,0,8977,9,3,10,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0</r> 
  <r>0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8999,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0</r> 
  </mv>
- <mv>
  <moid>ManagedElement=1,NodeBFunction=1,Sector=6,Carrier=1</moid> 
  <r>0,0,0,0,0,0,0,0,0,8999,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0</r> 
  <r>0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8169,831,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0</r> 
  </mv>
- <mv>
  <moid>ManagedElement=1,NodeBFunction=1,Sector=3,Carrier=1</moid> 
  <r>0,0,0,0,0,0,0,0,9000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0</r> 
  <r>0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8169,831,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0</r> 
  </mv>
  </mi>
  </md>
- <md>
+ <neid>
  <neun>WXAWi6385</neun> 
  <nedn>SubNetwork=ONRM_ROOT_MO_R,SubNetwork=WXRNC02,MeContext=WXAWi6385</nedn> 
  <nesw>CXP9012959/1_R6BN03</nesw> 
  </neid>
- <mi>
  <mts>20091105090000Z</mts> 
  <gp>900</gp> 
  <mt>pmPropagationDelay</mt> 
- <mv>
  <moid>ManagedElement=1,NodeBFunction=1,Sector=1,Carrier=1,Prach=1</moid> 
  <r>447,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0</r> 
  </mv>
- <mv>
  <moid>ManagedElement=1,NodeBFunction=1,Sector=3,Carrier=1,Prach=1</moid> 
  <r>447,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0</r> 
  </mv>
- <mv>
  <moid>ManagedElement=1,NodeBFunction=1,Sector=5,Carrier=1,Prach=1</moid> 
  <r>447,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0</r> 
  </mv>
- <mv>
  <moid>ManagedElement=1,NodeBFunction=1,Sector=2,Carrier=1,Prach=1</moid> 
  <r>447,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0</r> 
  </mv>
- <mv>
  <moid>ManagedElement=1,NodeBFunction=1,Sector=6,Carrier=1,Prach=1</moid> 
  <r>447,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0</r> 
  </mv>
- <mv>
  <moid>ManagedElement=1,NodeBFunction=1,Sector=4,Carrier=1,Prach=1</moid> 
  <r>447,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0</r> 
  </mv>
  </mi>
  </md>
+ <mff>
  <ts>20091105090000Z</ts> 
  </mff>
  </mdc>想提取里面的部分元素,形成一个txt文件,如下Sector=1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Sector=3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Sector=5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Sector=2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Sector=6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Sector=4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
想问大家如何做比较合理?

解决方案 »

  1.   

    .net中好像可以同,java中的没见过
      

  2.   

    我的思路是dom4j去抓元素,想怎么输出就怎么输出
      

  3.   

    大约有以下几种方法;
    1.DOM
    2.SAX
    3.DOM4J
    4.JDom
    各有优势,推荐使用DOM4J。
      

  4.   

    XML数据源对象DSO是一个微软ActiveX控件,构建在微软IE4以后的版本上。这个对象允许你把一个外部的XML文件或者嵌入HTML文件中的内容提取到HTML页面中。   你可以在一个Web页面中使用XML - DSO从一个外部XML文件中选取内容,从嵌入Web页面的XML中提取XML数据,然后使用JavaScript操作这些数据。然而,并不建议在Internet中使用这个对象,因为DSO只能工作在MSIE 4以上的浏览器中,因此这可能会带来一些兼容性问题。 所以,在企业内部网使用XML-DSO是很合适的。   开始  为了初始化XML - DSO对象,我们使用<OBJECT>标记。 用于XML-DSO的CLASSID是:    CLSID:550dda30-0541-11d2-9ca9-0060b0ec3d39  这ID唯一标识XML-DSO。使用下面的代码在一个Web页面中初始化这个控件:   <OBJECT ID="SomeID" CLASSID="CLSID:550dda30-0541-11d2-9ca9-0060b0ec3d39"></OBJECT>  虽然大部分对象需要许多参数与之相关联,但是XML-DSO不需要任何参数。   使用一个XML数据岛析取数据  首先,通过使用<XML>标记包含一个XML数据岛。其次,给它分配一个ID,xmldb --以备以后使用。 数据实际上是使用HTML标记:<ALT>,<SPAN>,<DIV>等等提取的。代码列表1中的代码使用了<SPAN>标记。datasrc属性指定了你想从中提取数据的那个数据岛。datafld属性指定了你想要的数据的XML标记。所以,第一个<SPAN>提取名称,而第二<SPAN>提取性别。   代码列表1:  <!-- example1.htm -->
      <HTML>
      <head>
      <title>XML DSO-example1.htm</title>
      </head>
      <body bgcolor="#FFFFFF">
      <XML id="xmldb">
      <db>
      <member>
      <name>Premshree Pillai<name>
      <sex>male</sex>
      </member>
      <member>
      <name>Vinod</name>
      <sex>male</sex>
      </member>
      </db>
      </XML>  <span datasrc="http://www.blue1000.com/article/#XMLdb" datafld="name"<</span>
      <br>
      <span datasrc="http://www.blue1000.com/article/#XMLdb" datafld="sex"></span>  </body>
      </HTML>   注意这段代码没有初始化一个XML-DSO对象。这是因为XML数据岛的使用中已经隐式地创建了一个。输出应为: 
      
      Premshree Pillai
      male  注意在XML数据岛中有两个<name>和<sex>标记。使用这个方法,你只能提取这些标记中的第一个实例。代码列表2中的代码使用<TABLE>标记提取所有的实例:   输出将是: 
        Name         Sex 
       Premshree Pillai   male 
       Vinod         male   在代码列表2中,<TABLE>标记使用<TD>标记内的<DIV>标记提取数据。表格将自动重复<member>(<name>和<sex>的母标记)的每个实例。
      

  5.   

    没看出有什么规律可以提取出你要的txt。
    如果是解析XML的,dom4j,网上一搜一麻袋!
      

  6.   

    我写的一个实例SAXReader reader = new SAXReader();
    Document document = null;
    try {
    document = reader.read(new File(path));
    System.out.println("1");
    // 根节点
    Element root = document.getRootElement();
    Iterator<Attribute> attit = root.attributeIterator();
    System.out.println("2");
    while (attit.hasNext()) {
    if ("date".equals(attit.next().getName())) {
    // 对象添加
    } } // 根节点下面的子节点
    Iterator<Element> it = root.elementIterator();
    System.out.println("3");
      

  7.   

    提取的是后半部分?
    <mv>
      <moid>ManagedElement=1,NodeBFunction=1,Sector=1,Carrier=1,Prach=1</moid> 
      <r>447,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0</r> 
      </mv>
    moid 提取 Sector=1, r 提取0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0?
    4种解析xml的方式,用dom4j吧
    http://developer.51cto.com/art/200903/117512.htm
      

  8.   

    用dom4j 比较好
    下面是一些参考代码import java.io.File;import java.io.IOException;
    import org.dom4j.Comment;
    import org.dom4j.Document;
    import org.dom4j.DocumentHelper;
    import org.dom4j.Element;
    import org.dom4j.Attribute;
    import java.util.List;
    import java.util.Iterator;import org.dom4j.io.OutputFormat;
    import org.dom4j.io.XMLWriter;
    import java.io.*;
    import java.net.URL;import org.dom4j.DocumentException;
    import org.dom4j.io.SAXReader;public class XmlDom4J {
    public void generateDocument() {
    Document document = DocumentHelper.createDocument();
    Element catalogElement = document.addElement("catalog");
    catalogElement.addComment("An XML Catalog");
    catalogElement.addProcessingInstruction("target", "text");
    Element journalElement = catalogElement.addElement("journal");
    journalElement.addAttribute("title", "XML Zone");
    journalElement.addAttribute("publisher", "IBM developerWorks");
    Element articleElement = journalElement.addElement("article");
    articleElement.addAttribute("level", "Intermediate");
    articleElement.addAttribute("date", "December-2001");
    Element titleElement = articleElement.addElement("title");
    titleElement.setText("Java configuration with XML Schema");
    Element authorElement = articleElement.addElement("author");
    Element firstNameElement = authorElement.addElement("firstname");
    firstNameElement.setText("Marcello");
    Element lastNameElement = authorElement.addElement("lastname");
    lastNameElement.setText("Vitaletti");
    //document.addDocType("catalog", null, "file://c:/Dtds/catalog.dtd");
    try {
    XMLWriter output = new XMLWriter(new FileWriter(new File(
    "c:/catalog/catalog.xml")));
    output.write(document);
    output.close();
    } catch (IOException e) {
    System.out.println(e.getMessage());
    }
    }
    public void init()
    {
    Document document=DocumentHelper.createDocument();
    Element catalogElement=document.addElement("optionsList");
    Element ipel=catalogElement.addElement("ip");
    ipel.addAttribute("iptype", "ipv4");
    Element url=catalogElement.addElement("url");
    Element url1=url.addElement("url1");
    url1.addAttribute("action", "address");

    Element url2=url.addElement("url2");
    url2.addAttribute("action1", "address1");
    url1.setText("url1");
    url2.addText("xxx.xxaction");
    Element aname=catalogElement.addElement("aname");
    ipel.addText("192.168.10.1");
    //url1.addText("xxx.xxaction");
    aname.addText("group manager");

    try {
    OutputFormat format = OutputFormat.createPrettyPrint();
    format.setEncoding("UTF-8");
    XMLWriter out=new XMLWriter(new FileWriter(new File("c:/catalog/catalog2.xml")),format);

    out.write(document);
    out.close();
    } catch (IOException e) {
    // TODO Auto-generated catch block
    System.out.println(e.getMessage());
    }


    }
    public void getList()
    {
    try {
    SAXReader reader=new SAXReader();
    reader.setEncoding("UTF-8");
    Document document=reader.read(new File("c:/catalog/catalog2.xml"));

    List list=document.selectNodes("optionsList");
    System.out.println(list.size());
    Iterator it=list.iterator();
    while(it.hasNext())
    {
    Element el=(Element)it.next();
    Iterator iter=el.elementIterator("ip");
    if(iter.hasNext())
    {
    Element ipElement=(Element)iter.next();
    ipElement.setText("192.168.1.1");
    Attribute iptype= ipElement.attribute("iptype");

    String ipStr=iptype.getValue();
    iptype.setValue("ipv6");
    System.out.println(ipStr);
    ipStr=iptype.getValue();
    System.out.println(ipStr);
    }
    Iterator iter2=el.elementIterator("url");
    if(iter2.hasNext())
    {
    Element ipElement=(Element)iter2.next();
    Iterator url1=ipElement.elementIterator("url1");
    Iterator url2=ipElement.elementIterator("url2");
    if(url1.hasNext())
    {
    Element u1=(Element)url1.next();
    System.out.println(u1.attribute("action").getValue());
    System.out.println(u1.getText());

    }
    if(url2.hasNext())
    {
    Element u2=(Element)url2.next();
    System.out.println(u2.attribute("action1").getValue());
    System.out.println(u2.getText());

    }


    ipElement.setText("user.getlist.action");
    }
    Iterator iter3=el.elementIterator("aname");
    if(iter3.hasNext())
    {
    Element ipElement=(Element)iter3.next();
    ipElement.setText("user manager");
    } }
    OutputFormat format = OutputFormat.createPrettyPrint();
    format.setEncoding("UTF-8");
    XMLWriter output = new XMLWriter(new FileWriter(new File(
    "c:/catalog/catalog2.xml")),format);
    output.write(document);
    output.close();

    } catch (Exception e) {
    System.out.println(e.getMessage());
    }
    }
    public static void main(String[] argv) {
    XmlDom4J dom4j = new XmlDom4J();
    //dom4j.generateDocument();

    //dom4j.modifyDocument(new File("c:/catalog/catalog.xml"));
    //dom4j.modifyDocument(new File("D:/workspace/archPro/WebRoot/WEB-INF/web.xml"));
    dom4j.init();
    dom4j.getList();
    } public void modifyDocument(File inputXml) {
    try {
    SAXReader saxReader = new SAXReader();
    Document document = saxReader.read(inputXml);
    List list = document.selectNodes("//article/@level" );
    System.out.println(list.size());
    Iterator iter = list.iterator();
    while (iter.hasNext()) {
    Attribute attribute = (Attribute) iter.next();
    if (attribute.getValue().equals("Intermediate"))
    attribute.setValue("Introductory");
    }
    list = document.selectNodes("//article/@date");
    iter = list.iterator();
    while (iter.hasNext()) {
    Attribute attribute = (Attribute) iter.next();
    if (attribute.getValue().equals("December-2001"))
    attribute.setValue("October-2002");
    }
    list = document.selectNodes("//article");
    iter = list.iterator();
    while (iter.hasNext()) {
    Element element = (Element) iter.next();
    Iterator iterator = element.elementIterator("title");
    while (iterator.hasNext()) {
    Element titleElement = (Element) iterator.next();
    if (titleElement.getText().equals(
    "Java configuration with XML      Schema"))
    titleElement
    .setText("Create flexible and extensible XML schema");
    }
    }
    list = document.selectNodes("//article/author");
    iter = list.iterator();
    while (iter.hasNext()) {
    Element element = (Element) iter.next();
    Iterator iterator = element.elementIterator("firstname");
    while (iterator.hasNext()) {
    Element firstNameElement = (Element) iterator.next();
    if (firstNameElement.getText().equals("Marcello"))
    firstNameElement.setText("Ayesha");
    }
    }
    list = document.selectNodes("//article/author");
    iter = list.iterator();
    while (iter.hasNext()) {
    Element element = (Element) iter.next();
    Iterator iterator = element.elementIterator("lastname");
    while (iterator.hasNext()) {
    Element lastNameElement = (Element) iterator.next();
    if (lastNameElement.getText().equals("Vitaletti"))
    lastNameElement.setText("Malik");
    }
    }
    XMLWriter output = new XMLWriter(new FileWriter(new File(
    "c:/catalog/catalog.xml")));
    output.write(document);
    output.close();
    } catch (DocumentException e) {
    System.out.println(e.getMessage());
    } catch (IOException e) {
    System.out.println(e.getMessage());
    }
    }
    }
      

  9.   

    读取xml文件的代码很多,在用这些代码写入txt文件。
      

  10.   

    外加一个:casetor 可以解析xml为对象,也可以将对象解析为xml
    http://www.castor.org/
      

  11.   

    Google 一下解析 XML,一大堆。。不过我还是觉得 xmlBeans最好用。。
      

  12.   

    推荐dom4j解析,比较好用一点。
      

  13.   

    dom4j
    jdom
    随便你选择