复制XML文件以写入Java中的新XML文件
发布时间:2020-12-16 23:21:34  所属栏目:百科  来源:网络整理 
            导读:我想知道是否有人知道是否可以使用 Java中的一个XML解析器逐行读取XML文档中的每一行,并基本上在另一个XML文件中重现相同的文档? (在我的例子中,只取出文档中从点X到点Y的行并复制它们).我考虑过在小型试运行中使用bufferedreader和bufferedwriter,但它没有
                
                
                
            | 
 我想知道是否有人知道是否可以使用 
 Java中的一个XML解析器逐行读取XML文档中的每一行,并基本上在另一个XML文件中重现相同的文档? (在我的例子中,只取出文档中从点X到点Y的行并复制它们).我考虑过在小型试运行中使用bufferedreader和bufferedwriter,但它没有完全正确地输出文件.以下是我在试运行中所做的事情,但这不是我想要的.那么有没有人有这方面的经验或有任何想法或建议提供?先感谢您. 
  
  JAVA CODE public class IPDriver 
{
    public static void main(String[] args) throws IOException
    {
        BufferedReader reader = new BufferedReader(new FileReader("C:/Documents and Settings/user/workspace/Intern Project/Proposals/Converted Proposals/Extracted Items/ProposalOne/word/document.xml"));
        BufferedWriter writer = new BufferedWriter(new FileWriter("C:/Documents and Settings/user/workspace/Intern Project/Proposals/Converted Proposals/Extracted Items/ProposalOne/word/tempdocument.xml"));
        String line = null;
        while ((line = reader.readLine()) != null)
        {
            writer.write(line);
        }
        // Close to unlock.
        reader.close();
        // Close to unlock and flush to disk.
        writer.close();
    }
}使用Ted Hopp工作JAVA代码 public class IPDriver 
    {
        public static void main(String[] args) throws IOException
        {
            BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream("C:/Documents and Settings/user/workspace/Intern Project/Proposals/Converted Proposals/Extracted Items/ProposalOne/word/document.xml"),"UTF-8"));
            BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("C:/Documents and Settings/user/workspace/Intern Project/Proposals/Converted Proposals/Extracted Items/ProposalOne/word/tempdocument.xml"),"UTF-8"));
            String line = null;
            while ((line = reader.readLine()) != null)
            {
                writer.write(line);
            }
            // Close to unlock.
            reader.close();
            // Close to unlock and flush to disk.
            writer.close();
        }
    }解决方法
 如果你的代码没有正确复制文件,我猜你有一个字符编码问题.由于XML的默认编码是UTF-8,而FileReader的默认编码是您平台的默认编码,我建议改为: 
  
  
  BufferedReader reader = new BufferedReader(
    new InputStreamReader(
        new FileInputStream("...input file path..."),"UTF-8"
    )
);
BufferedWriter writer = new BufferedWriter(
    new OutputStreamWriter(
        new FileOutputStream("...output file path..."),"UTF-8"
    )
);XML解析器将为您提供元素(或元素事件),而不是行.例如,他们无法区分空白区域的变化: <tag attr1="val1" attr2="val2" /> 与: <tag attr1="val1"
     attr2="val2"
     />如果您的要求包括区分这两种情况,则XML解析器方法将不起作用. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! | 
