2014-10-12 57 views
0

写入文件我对文章XML创建和XML

<ARTICLE ID="74"> 
<ARTICLE_CATEGORY_ID>1</ARTICLE_CATEGORY_ID > 
<ARTICLE_NAME>......</ARTICLE_NAME > 
<ARTICLE_EXTENSION>pdf</ARTICLE_EXTENSION > 
<ARTICLE_BYTE>[[email protected]</ARTICLE_BYTE > 
<ARTICLE_DATE>2014-10-11 00:00:00.0</ARTICLE_DATE > 
<ARTICLE_ACTIVE>1</ARTICLE_ACTIVE> 
</MAKALE> 

我想创建文件,并写入ARTICLE_BYTE,但我不能做到这一点,现在看来,似乎字节字符串是我quess所以就不会不知道我该怎么做?感谢您的帮助

//编辑 对不起,我是一个非常新的计算器.. 是的,这是来自我写的程序。

这部分代码从程序

try { 
     DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance(); 
     DocumentBuilder docBuilder = docFactory.newDocumentBuilder(); 

     // XML Kok Ismi 
     Document doc = docBuilder.newDocument(); 
     Element rootElement = doc.createElement("ARTICLES"); 
     doc.appendChild(rootElement); 

     for (Nesne nesne : userList) { 
      // ARTICLE ELEMENT 
      Element ARTICLE_ID= doc.createElement("ARTICLE "); 
      rootElement.appendChild(ARTICLE_ID); 

      //ID 
      Attr attr = doc.createAttribute("ID"); 
      attr.setValue(String.valueOf(nesne.getArticleID())); 
      MAKALE_ID.setAttributeNode(attr); 

      //ARTICLE_CATEGORY_ID 
      Element ARTICLE_CATEGORY_ID= doc.createElement("ARTICLE_CATEGORY_ID"); 
       ARTICLE_CATEGORY_ID.appendChild(doc.createTextNode(String.valueOf(nesne.getARTICLE_CATEGORY_ID()))); 
      ARTICLE_ID.appendChild(ARTICLE_CATEGORY_ID); 
      //[ARTICLE_NAME] 
      Element ARTICLE_NAME= doc.createElement("ARTICLE_NAME"); 
      ARTICLE_NAME.appendChild(doc.createTextNode(nesne.getARTICLE_NAME())); 
      ARTICLE_ID.appendChild(ARTICLE_NAME); 

      //[ARTICLE_EXTENSION] 
      Element ARTICLE_EXTENSION= doc.createElement("ARTICLE_EXTENSION"); 
      ARTICLE_EXTENSION.appendChild(doc.createTextNode(nesne.getARTICLE_EXTENSION())); 
      ARTICLE_ID.appendChild(ARTICLE_EXTENSION); 

      //[ARTICLE_BYTE] 
      Element ARTICLE_BYTE= doc.createElement("ARTICLE_BYTE"); 
      ARTICLE_BYTE.appendChild(doc.createTextNode(nesne.getARTICLE_BYTE().toString())); 
      ARTICLE_ID.appendChild(ARTICLE_BYTE); 

      //[ARTICLE_DATE] 
      Element ARTICLE_DATE = doc.createElement("ARTICLE_DATE"); 
      ARTICLE_DATE.appendChild(doc.createTextNode(nesne.getARTICLE_DATE())); 
      ARTICLE_ID.appendChild(ARTICLE_DATE); 

      //[ARTICLE_ACTIVE] 
      Element ARTICLE_ACTIVE= doc.createElement("ARTICLE_ACTIVE"); 
      ARTICLE_ACTIVE.appendChild(doc.createTextNode(String.valueOf(nesne.getArticleActive()))); 
      ARTICLE_ID.appendChild(ARTICLE_ACTIVE); 

     } 
     // write the content into xml file 
     TransformerFactory transformerFactory = TransformerFactory.newInstance(); 
     Transformer transformer = transformerFactory.newTransformer(); 
     DOMSource source = new DOMSource(doc); 
     StreamResult result = new StreamResult(new File("dosyalar.xml")); 

     // Output to console for testing 
     // StreamResult result = new StreamResult(System.out); 
     transformer.transform(source, result); 

     System.out.println("File saved!"); 
+1

“ARTICLE_BYTE”元素看起来包含从字节数组返回的'toString()'。如果是这样,它不包含字节数组中的有用信息,因此不能从中提取有用的数据。 – 2014-10-12 12:37:00

+0

Oooo真的吗?我们可以返回旧式吗? – massaimara98 2014-10-12 12:39:03

+0

请在上面澄清您的评论,以及您的问题,以及此XML的来源,以及您想要用XML做什么。 – 2014-10-12 12:40:00

回答

1

你的问题似乎是在这里:

nesne.getARTICLE_BYTE().toString() 

我不熟悉你的Nesne类,但我可以告诉大家,方法, getARTICLE_BYTE()返回一个字节数组,调用toString()就会返回当前正在看到的无用信息,如果需要存储这些信息,则需要存储整个数组。使用for循环并将数组存储为每个字节的字符串表示形式并不是最有效的做法,并且会导致超大的不可读的XML,因此也许您可以将其存储在XML之外并将引用传递给XML中的字节数组文件。或者作为BLOB存储在数据库中。请注意,这不是我所做的很多事情,所以我不是专家。

+0

谢谢你的回答,我不知道BLOB,但我会检查它 – massaimara98 2014-10-12 13:04:47

+1

@ massaimara98:BLOB代表[二进制大对象](http://en.wikipedia.org/wiki/Binary_large_object),并且仅用于(I想想),如果您将数据存储在数据库中,而不是通过XML - 尽管我可能再次出错,但这不是我的专业领域。 – 2014-10-12 13:08:22

+0

其实我保存我的数据库,但我不想把数据库信息在Android应用程序,我害怕逆向工程,所以这给我带来了另一个问题 – massaimara98 2014-10-12 13:15:27