如何在不映射子标记的情况下访问根的孙标记?

时间:2017-08-15 00:02:36

标签: xml java-8 jaxb yql

我目前正在尝试映射XML文件的一部分,但我找不到合适的方法。

这里是XML文件:

<tag.1>
...
<tag.2>
    <tag.3>
        <ns:tag.4 xmlns:ns="" att.4.1="" att.4.2=""/>
        <ns:tag.5 xmlns:ns="" att.5.1="" att.5.2=""/>
        <ns:tag.6 xmlns:ns="" att.6.1="" att.6.2=""/>
        <ns:tag.7 xmlns:ns="" att.7.1="" att.7.2=""/>
        <ns:tag.8 xmlns:ns="" att.8.1="" att.8.2=""/>
        ...
        <ns:tag.9 xmlns:ns="" att.9.1="" att.9.2=""/>
        <ns:tag.9 xmlns:ns="" att.9.1="" att.9.2=""/>
        <ns:tag.9 xmlns:ns="" att.9.1="" att.9.2=""/>
        ...
    </tag.3>
</tag.2>

这是目标OO结构:

class Foo {
    private Tag.4 tag.4;
    private Tag.5 tag.5;
    private Tag.6 tag.6;
    private Tag.7 tag.7;
    private Tag.8 tag.8;

    private List<Tag.9> listTag.9;
}

class Tag.4 {
    private String att.4.1;
    private String att.4.2;
}

class Tag.5 {
    private String att.5.1;
    private String att.5.2;
}

class Tag.6 {
    private String att.6.1;
    private String att.6.2;
}

class Tag.7 {
    private String att.7.1;
    private String att.7.2;
}

class Tag.8 {
    private String att.8.1;
    private String att.8.2;
}

class Tag.9 {
    private String att.9.1;
    private String att.9.2;
}

我已经尝试过一些没有成功的方法:

@XmlRootElement(name="tag.1")
class Foo {

    @XmlElement(namespace="bar")
    private Tag.4 tag.4;
}

@XmlRootElement(name="tag.3")
class Foo {

    @XmlElement(name="tag.4", namespace="bar")
    private Tag.4 tag.4;
}

@XmlRootElement(name="tag.1/tag.2/tag.3")
class Foo {

    @XmlElement(name="tag.4", namespace="bar")
    private Tag.4 tag.4;
}

@XmlRootElement(name="tag.1")
class Foo {

    @XmlElement(name="tag.2/tag.3/tag.4" namespace="bar")
    private Tag.4 tag.4;
}

总之,我尝试访问比根低2级的标签,而不必映射中间级别。

以下是我正在处理的XML文件的链接:YQL query

感谢您阅读并抱歉任何错误。

0 个答案:

没有答案