Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.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 如何使用jaxb解析xml_Java_Xml_Jaxb - Fatal编程技术网

Java 如何使用jaxb解析xml

Java 如何使用jaxb解析xml,java,xml,jaxb,Java,Xml,Jaxb,您好,我正在尝试获取xml数据。。 结构如下: A. B 太平绅士13 JP_1_0 17:10:00 我已经使用jaxb提取了JourneypatternId,但我无法获得出发时间和往返信息,因为journey模式id在vechilejourney标记中有引用 从下载trang.jar 转到命令提示符, 要将xml转换为xsd,请键入以下命令 java -jar trang.jar transport.xml transport.xsd 将xml结构转换为xsd并编写以下命令后 xjc

您好,我正在尝试获取xml数据。。 结构如下:


A.
B
太平绅士13
JP_1_0
17:10:00
我已经使用jaxb提取了JourneypatternId,但我无法获得出发时间和往返信息,因为journey模式id在vechilejourney标记中有引用

从下载trang.jar 转到命令提示符, 要将xml转换为xsd,请键入以下命令

java -jar trang.jar transport.xml transport.xsd
将xml结构转换为xsd并编写以下命令后

xjc -p com.jaxb.test.xml.beans transport.xsd
上面的命令将从transport.xsd生成java bean

之后,您可以按如下所示解组xml

try
    {
        final JAXBContext jc = JAXBContext.newInstance(Transport.class);
        final Unmarshaller unmarshaller = jc.createUnmarshaller();
        try
        {
            final Transport transport = (Transport) unmarshaller.unmarshal(new FileReader(TRANSPORT_XML));
        } catch (final FileNotFoundException e)
        {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    } catch (final JAXBException e)
    {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

参考资料:

您是否遵循了我遵循的是,但本教程仅描述了如何解析xml而不是操作所有内容,我关心的是如何操作我们将检索的数据假设我从jaxb获得id,此id用作xml中的参考;如何到达那个块,我们需要dom解析吗?您可以在jaxb中使用xpath。newContext(this).iterate(//JourneyPatternRef[@id='JP_1_0']);
try
    {
        final JAXBContext jc = JAXBContext.newInstance(Transport.class);
        final Unmarshaller unmarshaller = jc.createUnmarshaller();
        try
        {
            final Transport transport = (Transport) unmarshaller.unmarshal(new FileReader(TRANSPORT_XML));
        } catch (final FileNotFoundException e)
        {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    } catch (final JAXBException e)
    {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }