gpt4 book ai didi

java - XML 和 Java...对值与索引感到困惑吗?

转载 作者:行者123 更新时间:2023-12-01 15:48:05 24 4
gpt4 key购买 nike

我试图了解如何使用 Java 读取 XML 文件。我想要一个 XML 标签,我们称其为“启用”,将 true 传递给一个方法,另一个 XML 标签为另一个方法提供数字。我想通过在 XML 文件中包含该行来传递 true 并将数字作为 valueofnumber 传递。我正在使用一系列 if 语句测试 XML 文件中的某些字符串来读出 XML 文件:

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 文件中提取数字值感到困惑。目前,当我尝试 getIndex() 时,我刚刚收到一个错误,表明什么都不存在。

提前非常感谢

最佳答案

getValue() method您调用的方法需要一个限定名称,即 XML 命名空间 + 本地名称,格式为 :.您的 XML 文档可能使用您必须提供的 namespace 。如果没有命名空间,您可能需要使用 other getValue() method并为命名空间传递null。这在很大程度上取决于您使用的解析器以及它的配置方式。最好建议您迁移到更高级别的解析库,它会为您处理这些细微差别:

  • StAX并不比 SAX 高多少,但它仍然具有更友好且通常更直观的界面。
  • JDOM作为 DOM 解析器,效率会稍低,但它使解析 XML 变得异常简单。
  • Commons Digester是一种基于规则的 XML 解析引擎。您可以为遇到这个或那个元素或属性时想要发生的情况建立规则,然后运行摘要器。方法调用是您可以设置的规则之一,POJO 的创建和填充也是如此。
  • JAXBXStream将完全消除猜测并以最少的配置将 XML 直接绑定(bind)到 POJO。那么您甚至不必处理 XML,而是可以使用普通对象。

编辑:(基于 XML 示例)您的“号码”不是属性。它是一个嵌套元素。这就是为什么您无法从 Attributes 对象获取它。我对其他库的其他建议仍然有效。

关于java - XML 和 Java...对值与索引感到困惑吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6721462/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com