Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 读取整个XML行并将其保存到数组中?JDOM_Java_Xml_Jdom - Fatal编程技术网

Java 读取整个XML行并将其保存到数组中?JDOM

Java 读取整个XML行并将其保存到数组中?JDOM,java,xml,jdom,Java,Xml,Jdom,我有一个非常简单的问题,但我不能解决它,我希望你能帮助我 如何使用JDOM读取一整行XML文件?我需要标记和属性,并希望将其保存在一个数组中。我该怎么做 package converter; import java.io.FileReader; import java.io.FileWriter; import java.util.ArrayList; import java.util.Collections; import java.util.List; import javax.

我有一个非常简单的问题,但我不能解决它,我希望你能帮助我

如何使用JDOM读取一整行XML文件?我需要标记和属性,并希望将其保存在一个数组中。我该怎么做

    package converter;

import java.io.FileReader;
import java.io.FileWriter;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

import javax.swing.JOptionPane;

import au.com.bytecode.opencsv.CSVReader;
import au.com.bytecode.opencsv.CSVWriter;

import org.jdom2.Document;
import org.jdom2.input.*;
import org.jdom2.output.*;

public class Converter {

    public List<Entry> xmlconvert(String pfad, String pfad2, String bitmask){
        List<Entry> entry = new ArrayList<Entry>();
        List<Entry> wrongEntries = new ArrayList<Entry>();
        String wrongEntryIndexes = "";

        String[] languages = {"en", "pt", "it", "fr", "es", "de", "zh"};

        try{


        SAXBuilder builder = new SAXBuilder();
        Document doc = builder.build(pfad);

        JOptionPane.showMessageDialog(null, "Converting successful.");
        return entry;
封装转换器;
导入java.io.FileReader;
导入java.io.FileWriter;
导入java.util.ArrayList;
导入java.util.Collections;
导入java.util.List;
导入javax.swing.JOptionPane;
导入au.com.bytecode.opencsv.CSVReader;
导入au.com.bytecode.opencsv.CSVWriter;
导入org.jdom2.Document;
导入org.jdom2.input.*;
导入org.jdom2.output.*;
公共类转换器{
公共列表xmlconvert(字符串pfad、字符串pfad2、字符串位掩码){
列表项=新的ArrayList();
列出错误条目=新建ArrayList();
字符串错误EntryIndexes=“”;
String[]languages={“en”、“pt”、“it”、“fr”、“es”、“de”、“zh”};
试一试{
SAXBuilder=新SAXBuilder();
文档文档=builder.build(pfad);
showMessageDialog(null,“转换成功”);
返回条目;

如您所见,这只是开始>如果您谈论XML,那么不应该谈论行,只有开始和结束标记才重要。行在XML中除了人类可读性之外没有任何意义。如果您获得了想要的
元素
-实例,您可以调用
getName()
getAttributes()
收集您的所有信息。然后您可以将它们推到任何类型的
列表上
,然后将其转换为
字符串[]

但是,这没有多大意义,因为XML通常有一个树结构,您试图将其强制为平面结构。此外,如果您想要平面结构,请查看
映射
,则可以将键(元素或属性的名称)和值保存为一对


也许一些显示文件的gernal模式的XML示例以及到目前为止用于读取XML的代码是有用的。

如果不知道XML的结构,很难说清楚,但根据您的评论,我猜您可能有以下情况:

<parentElement>
    <childElement>
        <attr1>XXX</attr1>
        ....
    </childElement>
   ... more childElements
</parentElement>

XXX
....
…更多儿童元素
您已经拥有该文档,因此需要遍历childElement标记。为此:

Element root = doc.getRootElement();
List<Element> childElements = root.getChildren("childElement");
Element root=doc.getRootElement();
List childElements=root.getChildren(“childElement”);

如果您尝试过任何东西,请反复查看childElements

。@Jagson,DIY.PS:为什么要将标记和属性存储在一个数组中?属性值和文本/节点值如何?实际上不是,我正在尝试为XML文件构建一个转换器。转换器应该搜索一些参数,删除它们,然后重试然后将条目与其他7个不同的参数相乘。现在我在考虑如何才能获得最佳结果。我实际上有CSV文件的程序。但现在我真的很困惑如何才能对XML文件进行同样的操作。啊,听起来不错!但我如何才能真正地用我从源代码读取的相同结构重写保存的信息最后一个文件?你能把它编辑成你的主要问题吗?这将使人们更容易帮助你:-)其他问题。我的XML文件很大。总是有相同的部分会反复弹出。我能扫描并保存子元素的每个元素、子元素和属性吗?然后转到下一行并再次保存它吗?同时,structure也必须安全。
Element root = doc.getRootElement();
List<Element> childElements = root.getChildren("childElement");