当前位置: 首页 > 知识库问答 >
问题:

如何使用JAXB获取xml属性

梁丘璞瑜
2023-03-14

这是我的xml:

<?xml version="1.0" encoding="UTF-8" ?>
    <organization>
      <bank>
        <description>aaa</description>
        <externalkey>123</externalkey>
        <property name="pName" value="1234567890" />
      </bank>
   </organization>

我为这个xml使用了JAXB和unMarshall,我可以得到描述和外部密钥。但是我不能得到有价值的属性名称。

>

  • 这是我的java类:

    JAXBContext jb = JAXBContext.newInstance(Organization.class);
    Unmarshaller um = jb.createUnmarshaller();
    Organization org = (Organization) um.unmarshal(new File("\\upload\\bank999999.xml"));
    System.out.println(org.getBank().getDescription());
    System.out.println(org.getBank().getExternalkey());
    

    组织JAVA

    @XmlRootElement
    public class Organization {
    Bank bank = new Bank();
    
    public Bank getBank() {
      return bank;
    }
    
    public void setBank(Bank bank) {
     this.bank = bank;
    }
    }
    

    银行JAVA

    @XmlRootElement
    public class Bank {
     private String description;
     private String externalkey;
     private String property;
    
    //..GETTER and SETTER
    }
    

    如何获取属性名称和值?谢谢你

  • 共有1个答案

    李锦
    2023-03-14

    银行

    您需要将属性属性从String更改为域对象。

    @XmlAccessorType(XmlAccessType.FIELD)
    public class Bank {
        private String description;
        private String externalkey;
        private Property property;
    }
    

    所有物

    然后,您的属性对象看起来像:

    @XmlAccessorType(XmlAccessType.FIELD)
    public class Property {
    
        @XmlAttribute
        private String name;
    
        @XmlAtrribute
        private String value;
    
    }
    
     类似资料:
    • 我有一个XMLPath对象,我想为一些节点取属性名。例如, 对于这个XML,什么是XMLPath表达式来获取的属性? 我可以通过以下内容获取md:EntityDescriptor的entityID: 但是对于位置属性,我想得到 我得到的输出是,其他什么都没有。

    • 我需要标签中的属性值。< br >例如。Name xmlns:xsi = " http://www . w3 . org/2001/XML inst " xsi:space schema = " Name _ 5879 . xsd "

    • 问题内容: 我有一个看起来像这样的xml: 在这里,我想检索类型为属性的“源类型”的值。 我曾这样尝试过,但无法正常工作: 我也尝试过这个: 请帮助我!! 在此先感谢Varsha。 问题答案: 由于您的问题较为笼统,请尝试使用Java中提供的XML解析器来实现。如果您特定于解析器,请在此处更新您尝试过的代码

    • 问题内容: 对于: 我如何获得“价值”? 引发错误。 问题答案: 这将找到名为的元素的第一个实例,并返回该属性的值。

    • 问题内容: 我在访问SimpleXML对象的部分时遇到问题。当我整个对象时,我得到正确的输出,而当我其余对象(嵌套标签)时,我得到正确的输出,但是当我遵循docs和时 ,我得到一个空对象,尽管事实是第一个清楚地表明,存在要输出的属性。 任何人都知道我在这里做错了/如何进行这项工作? 问题答案: 您可以通过在XML节点上调用attribute()函数来获取XML元素的属性。然后,您可以var_dum