繁体   English   中英

从XML创建和写入文件

[英]create and write file from XML

我有关于文章的XML

<ARTICLE ID="74">
<ARTICLE_CATEGORY_ID>1</ARTICLE_CATEGORY_ID >
<ARTICLE_NAME>......</ARTICLE_NAME >
<ARTICLE_EXTENSION>pdf</ARTICLE_EXTENSION >
<ARTICLE_BYTE>[B@6d78f375</ARTICLE_BYTE >
<ARTICLE_DATE>2014-10-11 00:00:00.0</ARTICLE_DATE >
<ARTICLE_ACTIVE>1</ARTICLE_ACTIVE>
</MAKALE>

我想创建文件,然后写ARTICLE_BYTE,但是我做不到,看来,字节似乎是字符串,所以我不知道该怎么办? 感谢您的帮助

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

那是程序代码的一部分

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!");

您的问题似乎在这里:

nesne.getARTICLE_BYTE().toString()

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM