gpt4 book ai didi

java - 从资源中解析 XML 文件

转载 作者:行者123 更新时间:2023-12-01 13:41:20 29 4
gpt4 key购买 nike

我正在尝试从资源中解析 XML 文件。解析完文件后,我打算对其执行一些 XPATH 函数。

我的代码是:

Resources res = getResources();
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
factory.setNamespaceAware(true);
DocumentBuilder builder = null;
Document doc = null;
XPathExpression expr = null;

try {
builder = factory.newDocumentBuilder();
} catch (ParserConfigurationException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}

try {
doc = builder.parse(res.getResourceName(R.xml.cdatest01));
} catch (NotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SAXException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

调试代码时,解析语句中会引发 IOException 错误。 logcat 将错误显示为

java.net.MalformedURLException: unknown protocol: com.apps4care.mycarerecord

关于我做错了什么的任何线索......

最佳答案

您正在尝试将完整的资源名称从 Resources.getResourceName 传递到需要 URI 字符串的 DocumentBuilder.parse。这些不是同一件事。

这就是为什么你会收到 MalformedURLException

您可以通过多种方式实现此目的,包括:

  1. 调用 DocumentBuilder.parse 的变体,它接受一个 InputStream 并使用 res.openRawResource 代替。这可能是较小的变化。
  2. 使用 Resources.getXml 获取 XML 拉取解析器并使用它,而不是使用 DOM API 来解析 XML。

关于java - 从资源中解析 XML 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20744281/

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