以文本方式查看主题

-  W3CHINA.ORG讨论区 - 语义网·描述逻辑·本体·RDF·OWL  (http://bbs.xml.org.cn/index.asp)
--  『 DOM/SAX/XPath 』  (http://bbs.xml.org.cn/list.asp?boardid=11)
----  JAVA中如何用DOM往XML文件中写数据的时候规定好XML的格式?  (http://bbs.xml.org.cn/dispbbs.asp?boardid=11&rootid=&id=30363)


--  作者:blankheart
--  发布时间:4/11/2006 11:28:00 AM

--  JAVA中如何用DOM往XML文件中写数据的时候规定好XML的格式?
我想得到的xml数据格式:
<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSpy v2006 sp2 U (http://www.altova.com) by yanglin (lgdc) --><record xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="C:\Documents and Settings\Administrator\project\record.xsd">
 <person>
                <name>yangin</name>
  <password>203040</password>
  <phonenumber>02512235654</phonenumber>
  <email>ddd</email>
  <homepage>dddd</homepage>
 </person>
 <person>
                <name>wang</name>
  <password>144</password>
  <phonenumber>444444</phonenumber>
  <email>4444</email>
  <homepage>4444</homepage>
 </person>
</record>

用dom生成得格式:

<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSpy v2006 sp2 U (http://www.altova.com) by yanglin (lgdc) --><record xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="C:\Documents and Settings\Administrator\\project\record.xsd"><person><name>yangin</name><password>203040</password><phonenumber>02512235654</phonenumber><email>ddd</email><homepage>dddd</homepage></person><person><name>wang</name><password>144</password><phonenumber>444444</phonenumber><email>4444</email><homepage>4444</homepage></person></record>

我想得到得数据格式就象标准的格式一行一个数据而不是生成的所有数据都在一串,
就使如何才能让它输入一项数据的时候自动换行,下一行输入新的一向数据;
各位大虾帮帮我,如何才能实现?
代码如下:


//为新的客户节点创建一个内容

      Text txtseg;
      Element person=doc.createElement("person");

      Element nametxt=doc.createElement("name");
      txtseg=doc.createTextNode(name);
      nametxt.appendChild(txtseg);
      person.appendChild(nametxt);


       Element passwordtxt=doc.createElement("password");
       txtseg=doc.createTextNode(password1);
       passwordtxt.appendChild(txtseg);
       person.appendChild(passwordtxt);

      Element phonenumbertxt=doc.createElement("phonenumber");
      txtseg=doc.createTextNode(phonenumber);
      phonenumbertxt.appendChild(txtseg);
      person.appendChild(phonenumbertxt);

      Element emailtxt=doc.createElement("email");
      txtseg=doc.createTextNode(email);
      emailtxt.appendChild(txtseg);
      person.appendChild(emailtxt);

      Element homepagetxt=doc.createElement("homepage");
     txtseg=doc.createTextNode(homepage);
     homepagetxt.appendChild(txtseg);
     person.appendChild(homepagetxt);

     doc.getDocumentElement().appendChild(person);


   TransformerFactory tFactory =TransformerFactory.newInstance();

   Transformer transformer = tFactory.newTransformer();

   DOMSource source = new DOMSource(doc);

    StreamResult result = new StreamResult(new java.io.File("record.xml"));

   transformer.transform(source, result);

帮帮小弟!


--  作者:hgpimac
--  发布时间:4/11/2006 1:10:00 PM

--  
用程序读就没必要了,人工读可以在xmlspy中以grid方式显示再保存就可以了。
--  作者:blankheart
--  发布时间:4/12/2006 10:19:00 AM

--  
我 所需要就用程序度,因为如果可以生成直接换行的数据项,那么读取数据时,所需做的工作量将很小,如果不换行的话,我写得代码很难做到,因为好像得用一个递归函数来解决,我在这方面不是很会,比如说把<name>的数据象提出来,在java流中不用dom直接对该xml文件操作
,请多多指教。

--  作者:easytodo
--  发布时间:4/12/2006 4:22:00 PM

--  
org.jdom.output.XMLOutputter xml=new org.jdom.output.XMLOutput(Format.getPrettyFormat());

xml.output(doc,new FileOutputStream("example.xml"));


--  作者:easytodo
--  发布时间:4/12/2006 4:25:00 PM

--  
jdom 似乎更方便
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
46.875ms