XML和Java。。。对价值和指数感到困惑?
我试图理解如何使用Java读取XML文件。我希望有一个XML标记,让我们调用它enable,将true传递给一个方法,并将另一个XML标记提供给另一个方法的数字。我希望通过在XML文件中输入该行来传递true,并将数字作为valueofnumber传递。我使用一系列if语句读取XML文件,测试XML文件中的某些字符串:XML和Java。。。对价值和指数感到困惑?,java,xml,Java,Xml,我试图理解如何使用Java读取XML文件。我希望有一个XML标记,让我们调用它enable,将true传递给一个方法,并将另一个XML标记提供给另一个方法的数字。我希望通过在XML文件中输入该行来传递true,并将数字作为valueofnumber传递。我使用一系列if语句读取XML文件,测试XML文件中的某些字符串: public void startElement(String uri, String localName, String qName, Attributes attribute
public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException
{
if (localName.equals("enabled")){
currentConfig.setenabled(true);
}
else if (localName.equals("number")){
currentConfig.setnumber(Double.parseDouble(attributes.getValue("number")))
}
}
我对如何从XML文件中提取number的值感到困惑。目前,当我尝试getIndex()时,我刚刚得到一个错误,即不存在任何内容
非常感谢您正在调用的名称采用限定名称,表示XML名称空间+本地名称,格式为:。您的XML文档可能使用名称空间,您必须提供名称空间。如果没有名称空间,您可能需要对名称空间使用and passnull
。这在很大程度上取决于您使用的解析器以及它的配置方式。建议您转到更高级别的解析库,为您处理这些细微差别:
- 虽然它的级别并不比SAX高多少,但它仍然具有更友好、更直观的界面
- ,作为DOM解析器,效率会稍低一些,但它使解析XML变得非常简单
- 是一种基于规则的XML解析引擎。您可以为遇到这个或那个元素或属性时希望发生的事情建立规则,然后运行摘要。方法调用是可以设置的规则之一,POJO的创建和填充也是如此
- 或者将完全消除猜测,并以最少的配置将XML直接绑定到POJO。这样,您甚至不必处理XML,而是可以处理普通对象
编辑:(基于XML示例)您的“数字”不是属性。它是一个嵌套元素。这就是为什么从Attributes对象获取它时遇到问题的原因。我对其他库的其他建议仍然有效。是否将元素名(localName)与属性值混淆?向我们显示您试图读取的XML。我没有看到对
getIndex
的任何调用。我看不到在哪里声明/初始化属性
或localName
。请向我们展示所有相关代码。您能粘贴一些示例XML吗?看起来他正在进行原始SAX解析,这是。element test TestTrigger 25
一些示例XML的实现