xmlConfig.configurationAt未获取值

时间:2016-11-15 13:01:13

标签: java xml-parsing apache-commons

我有一个像这样的xml。

<card>
    <name>VISA</name>
    <id>0</id>
    <length>
        <value>16</value>
    </length>
    <bin>
        <range>
            <start>4</start>
        </range>
    </bin>
</card>

这是我用来加载它并解析这个xml的代码。

private XMLConfiguration loadInputXml(final String responseXml)
        throws ConfigurationException {
    final XMLConfiguration xmlConfig = new XMLConfiguration();
    xmlConfig.setDelimiterParsingDisabled(true);
    xmlConfig.setValidating(false);
    xmlConfig.load(new ByteArrayInputStream(responseXml.getBytes()));
    return xmlConfig;
}

现在我正在尝试通过此代码获取值

XMLConfiguration xmlConfig = loadInputXml(xmlString);
List<HierarchicalConfiguration> cardList = xmlConfig
        .configurationsAt("card");

我无法获取子节点,我没有收到任何错误,因此我无法找到它的根本原因。 需要帮忙。 提前致谢!!!!

1 个答案:

答案 0 :(得分:0)

xmlConfig.configurationAt未获取任何值,因为card <{1}}的根元素,因此调用XML会使其搜索你的根元素中的元素configurationsAt("card"),这里你没有这样的元素,所以你什么也得不到。

对我来说,你尝试做的事情并没有多大意义,但如果由于未知原因你真的需要使用card来访问根元素,那么请使用空configurationsAt作为使其获取根元素的参数:

String

您应该做的只是使用类List<HierarchicalConfiguration> cardList = xmlConfig.configurationsAt(""); 的实例,根据预期的类型使用XMLConfiguration方法之一访问您的属性。

例如,让我们说我想获得getXXXname的值,我会继续下一步:

length