小编thi*_*ilo的帖子

如何通过JAXB xml解析获取特定元素?

我已经使用JAXB来解析XML.如何通过JAXB xml解析来获取特定元素(即子节点),而无需将该元素解析为节点.

<?xml version="1.0" encoding="UTF-8"?>
        <Header>
            <From>
            <Credential
                        domain="NetworkId"><Identity>ANXXXNNN</Identity>
            </Credential>
            </From>

            <To>
            <Credential
                        domain="NetworkId"><Identity>ANNNXXXXXT</Identity>
            </Credential>
            </To>

            <To>
            <Credential
                        domain="NetworkId"><Identity>BNNXXXT</Identity>
            </Credential>
            </To>
        </Header>
Run Code Online (Sandbox Code Playgroud)

我已经完成了这样的解组,它运行正常.对于性能,我不希望元素作为节点.还有其他方法吗?

Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
dbf.setNamespaceAware(true);
DocumentBuilder db = dbf.newDocumentBuilder();
    Document doc;
    doc = db.parse(file);
    NodeList node = (NodeList)doc.getElementsByTagName("TO");

   JAXBElement<ToType> element =  jaxbUnmarshaller.unmarshal(node.item(0),ToType.class);
Run Code Online (Sandbox Code Playgroud)

对象模型就像

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "ToType", propOrder = {
    "credential"
})
public class ToType {

    @XmlElement(name = "Credential", required = true)
    protected CredentialType credential;


    public CredentialType getCredential() {
        return credential;
    }

    public …
Run Code Online (Sandbox Code Playgroud)

java xml jaxb xml-parsing

7
推荐指数
1
解决办法
1万
查看次数

标签 统计

java ×1

jaxb ×1

xml ×1

xml-parsing ×1