将Xml文件导入java应用程序

将Xml文件导入java应用程序,java,swing,file-io,Java,Swing,File Io,我想将一个XML文件导入我的Java应用程序。 这就是功能: static void lireFichier(String fichier) throws Exception { SAXBuilder sxb = new SAXBuilder(); document = sxb.build(new File(fichier)); racine = document.getRootElement(); } 这就是我所说的 lireFichier("exemple.xml"

我想将一个XML文件导入我的Java应用程序。 这就是功能:

static void lireFichier(String fichier) throws Exception
{
    SAXBuilder sxb = new SAXBuilder();
    document = sxb.build(new File(fichier));
    racine = document.getRootElement();
}
这就是我所说的

lireFichier("exemple.xml");

这是Swing应用程序的一部分。我希望用户能够指定要打开的XML文件。如何执行此操作?

-很简单,只需将
文件的
路径作为字符串传递,即
XML
文件所在的位置

例如:

File f=新文件(“d:\\Myfolder\\vivek.xml”)

-您也可以始终使用以下易于使用的
API
来解析XML

  • JAXP&JAXB

  • CASTOR


-很简单,只需将
文件的
路径作为字符串传递,您的
XML
文件就位于该字符串中

例如:

File f=新文件(“d:\\Myfolder\\vivek.xml”)

-您也可以始终使用以下易于使用的
API
来解析XML

  • JAXP&JAXB

  • CASTOR


这确实是一个基本概念,只要稍加研究就可以轻松解决

你需要花一些时间通读,尤其是

我还推荐一个关于API的速成课程

JFileChooser fc = new JFileChooser();
fc.setDialogTitle("Open stuff");
fc.addChoosableFileFilter(new FileFilter() {

    @Override
    public boolean accept(File f) {
        return f.getName().toLowerCase().endsWith(".xml") || f.isDirectory();
    }

    @Override
    public String getDescription() {
        return "XML Document (*.xml)";
    }
});

switch (fc.showOpenDialog(null)) {
    case JFileChooser.APPROVE_OPTION:
        File file = fc.getSelectedFile();
        lireFichier(file.getPath()); 
        break;
}

这确实是一个基本概念,只要稍加研究就可以轻松解决

你需要花一些时间通读,尤其是

我还推荐一个关于API的速成课程

JFileChooser fc = new JFileChooser();
fc.setDialogTitle("Open stuff");
fc.addChoosableFileFilter(new FileFilter() {

    @Override
    public boolean accept(File f) {
        return f.getName().toLowerCase().endsWith(".xml") || f.isDirectory();
    }

    @Override
    public String getDescription() {
        return "XML Document (*.xml)";
    }
});

switch (fc.showOpenDialog(null)) {
    case JFileChooser.APPROVE_OPTION:
        File file = fc.getSelectedFile();
        lireFichier(file.getPath()); 
        break;
}


您是否尝试过类似lireFichier(“/path/to/your/file/example.xml”)?这实际上与Swing、JDOM或xml无关,而与基本文件I&O有关。标记已编辑。否,因为文件名可以更改。事实上,我的应用程序以XML文件为参数,然后显示与该文件关联的动态图!因此,我想导入任何名称的xml文件。如果程序以文件名为参数,则由程序的用户传递适当的文件名(和路径)。为什么要在意呢?然后使用JFileChooser的Swing解决方案,并使用从所选文件获得的完整文件名/路径。您是否尝试过类似lireFichier(“/path/to/your/file/example.xml”)?这实际上与Swing、JDOM或xml无关,都与基本文件I&O有关。标记已编辑。否,因为文件名可以更改。事实上,我的应用程序以XML文件为参数,然后显示与该文件关联的动态图!因此,我想导入任何名称的xml文件。如果程序以文件名为参数,则由程序的用户传递适当的文件名(和路径)。为什么要在意呢?然后使用JFileChooser的Swing解决方案,并使用从所选文件获得的完整文件名/路径。jaxb和castor仅在xml具有预定义结构时才有意义。jaxb和castor仅在xml具有预定义结构时才有意义。并且您希望它是一个小xml文件,因为通常您不希望在EDT上读取/处理文件(不确定
lireFichier
方法到底做了什么,但它看起来也像是一些XML解析)是的,我想解析XML文件并提取信息,从XML标记中绘制因果图。因此,XML文件将是我的applicationRad1的输入,而动态garph是我的applicationRad1的输出。请注意,加载和解析XML文件可能是一个耗时的过程。Robin只是提醒我们这样做会阻塞UI事件队列(事件调度线程(EDT)),这会使您的应用程序看起来像它的hungAnd,您希望它是一个小xml文件,因为通常您不希望读取/处理文件(不确定
lireFichier
方法到底做了什么,但它看起来也像一些XML解析)在EDTyes上,我想解析XML文件并从XML标记中提取信息以绘制因果图。因此,XML文件将是我的应用程序RAD1的输入,而动态garph是我的应用程序RAD1的输出。请注意,加载和解析XML文件可能是一个耗时的过程。Robin只是提醒我们这样做会阻止UI事件queue(事件调度线程(EDT)),这将使您的应用程序看起来像是挂起的