从资源加载和解析 xml 时出现问题

2023-12-02

我已经编写了一个解析器,它可以从 HttpURLConnection 解析 xml 文件。这很好用。

问题:我需要重写这个,以便从本地资源而不是从互联网加载 xml 文件,但我无法让它工作...只是为了让您了解原始 Web 解析器的外观:

InputStream in=null;

URLConnection connection = url.openConnection(); 
HttpURLConnection httpConnection = (HttpURLConnection)connection; 
int responseCode = httpConnection.getResponseCode(); 

if (responseCode == HttpURLConnection.HTTP_OK) { 


   in = httpConnection.getInputStream(); 
   DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();  
   DocumentBuilder db = dbf.newDocumentBuilder();

   Document dom = db.parse(in);     
   Element docEle = dom.getDocumentElement();
   NodeList nl = docEle.getChildNodes();
   for (int i = 0; i < nl.getLength(); i++) {
    Node node = nl.item(i);

    //START PARSING......

现在,这是我用来尝试从资源文件夹中的 xml/myfile.xml 中放置的本地资源进行解析的代码:

InputStream in=null;
in = mParentActivity.getResources().openRawResource(R.xml.myfile);

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
                    
Document dom = builder.parse(in); // THIS IS WHERE I GET AN SAXParseException
                    
Element root = dom.getDocumentElement();
NodeList nl = root.getChildNodes();

for (int i = 0; i < nl.getLength(); i++) {
    Node node = nl.item(i);

 //START PARSING......

本地的xml文件和web文件是完全一样的...如果有人愿意看一下:http://agens.no/Eniro/Android/SEWheel/Category2.plist.xml

这是堆栈跟踪:

02-01 16:08:45.546:WARN / System.err(19703):org.xml.sax.SAXParseException:预期名称(位置:START_TAG @1:309 in java.io.InputStreamReader@47668728)


找到答案。当文件位于 res/xml 文件夹中时,输入流显示许多无效字符。当我把它放在 res/raw 文件夹中时,它工作正常。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从资源加载和解析 xml 时出现问题 的相关文章

随机推荐

  • 第 n 个子元素选择错误的元素

    对于这个特定的站点 当我通过 CSS 或 jQuery 使用 nth child 时 nth child 选择器捕获了错误的元素 我在调用的选择器之前有一个孩子 home article nth child 3 captures 2nd c
  • 评估 FeatherJS 身份验证需求

    我和我的同事想构建一个聊天应用程序 ReactJS NodeJS 我们一直在寻找最好的框架来实现这一点 FeathersJS 似乎无疑是最稳定且功能丰富的 socket io 包装器 然而 由于我们希望允许我们的应用程序扩展 因此我们决定将
  • 如何检测字符串列表中的公共子字符串

    给定一组字符串 例如 EFgreen EFgrey EntireS1 EntireS2 J27RedP1 J27GreenP1 J27RedP2 J27GreenP2 JournalP1Black JournalP1Blue Journal
  • 尝试改变返回 Iterator 的闭包内的状态时,出现 Rust 错误“无法推断借用表达式的适当生命周期”

    我正在尝试学习 Rust 并在尝试模拟嵌套 Python 生成器时遇到了与生命周期相关的问题 正如编译器所报告的 问题在于由闭包改变的值的生命周期 代码的关键是 flat mapping 一个闭包 它调用一个函数 该函数在其返回的迭代器中改
  • html5-canvas 在线移动对象

    我想在斜线上移动物体 我已经给出了我的代码 在我的第三个 div 的代码中 当我移动滑块时 我在这条线上画了一条斜线 我想移动一个对象 我在第一个分区中正在做类似的事情 我在曲线上移动物体的地方 我正在寻找一些函数 在其中我将提供点并且对象
  • 如何使用 .htaccess 允许在我的 iframe 中访问页面但不能直接访问?

    我有一个用 iframe 制作的网站 我想在自己的 iframe 中显示一个页面 但我想拒绝直接访问 我怎样才能在我的 htaccess 您可以使用Referer用于检查请求是否来自您网站上的链接 或 img src 或 iframe sr
  • Argparse,处理可重复的项目集

    是否可以创建一组相关且可重复的可选参数 假设我有三个参数 a b c 组成一个集合 a 是必需的 但 b 和 c 是可选的 更新 我希望能够指定多组这些 Script py a 1 b 2 c 3 a 4 c 6 a 7 b 8 a 10
  • 我需要将哪些参数传递给 PackageWeb powershell 脚本才能将其部署到我的远程计算机

    尽管如此 我还是在 MSBuild MSDeploy world 中闲逛 并且最近经常摸不着头脑 我希望能够仅构建一次 Web 应用程序项目并将其部署到多个配置 我找到了这个PackageWeb解决方案来自 Sayed I Hashimi
  • 如何将附加属性设置为布尔值

    我正在尝试设置附加属性元素添加到 Open API Schema 3 X 中 但不幸的是我无法在文档中找到任何可以帮助我的内容 我在 Spring boot 中有一个应用程序 它使用 Spring doc OAS 该 OAS 依赖于 Swa
  • 如何从网址中删除问号[重复]

    这个问题在这里已经有答案了 有什么办法可以删除网址中的问号吗 现在假设 URL 可以是http www domain com profile a 10但也可以是http www domain com profile b ticket 所以在
  • 使用 git Branch -f 或 git update-ref 快进现有分支是否更好?

    我意识到我可以使用git update ref快进我不在的现有分支 然后我发现类似的事情可以通过git branch f 我明白那个git update ref更加灵活 它可以移动任何参考 但这可能很危险 那么是不是更好用git branc
  • Sass中如何给全局变量赋值?

    我运行这个 Sass 代码 a 1 if 2 2 4 a 2 debug a 我期望看到 2 然而 输出是 Line 5 DEBUG 1 我知道 Sass 创建了一个新的 a里面的变量 if范围 我怎样才能改变这种行为并为全局分配一个值 a
  • SQLite UPSERT /更新或插入

    我需要对 SQLite 数据库执行 UPSERT INSERT 或 UPDATE 有一个命令 INSERT OR REPLACE 在许多情况下很有用 但是 如果您想由于外键而保留自动增量的 id 则它不起作用 因为它会删除该行 创建一个新行
  • 在 Perl 中打开和读取文件的最佳方法是什么?

    请注意 我并不是在寻找打开 读取文件的 正确 方式 或者每次都应该打开 读取文件的方式 我只是有兴趣了解大多数人使用什么方式 也许同时学习一些新方法 我的 Perl 程序中一个非常常见的代码块是打开一个文件并对其进行读取或写入 我见过很多这
  • 如何在 OpenGLES 中获取图像变量的绑定点

    我正在尝试在 GLES 着色器中获取图像变量的绑定点 我可以使用该代码对制服或着色器存储块执行此操作 GLenum Prop GL BUFFER BINDING GLint Binding 1 GLint ValuesWritten 0 g
  • 如何在JavaCC中使用反斜杠转义字符换行?

    我有一个任务是创建一个词法分析器 除了一点之外 我已经一切正常 我需要创建一个接受新行的字符串 并且该字符串由双引号分隔 该字符串接受任何数字 字母 某些指定的标点符号 反斜杠和分隔符内的双引号 我似乎不知道如何转义新行字符 是否有某种方法
  • SQLite:如何将查询结果保存为 CSV 文件?

    有没有办法可以将查询结果导出到 CSV 文件中 From here和 d5e5 的评论 您必须将输出切换到 csv 模式并切换到文件输出 sqlite gt mode csv sqlite gt output test csv sqlite
  • 将 YYYYMMDD 字符串转换为 Go 中的有效日期

    我想转换一个字符串 20101011 到有效日期 2010 10 11 但无法弄清楚我们该怎么做 I tried now time Now date now Format 20101011 and date time Parse 20101
  • Android:如何使用 Parse 作为替代 GCM 推送通知提供程序?

    请参阅问题末尾的 EDIT 2 Google 更新了推送的实现方式 因此更容易一起处理 gcm 和解析 我已经在应用程序中使用了 GCM 我想添加解析作为替代方案 这就是我现在所拥有的 所有权限都已正确声明
  • 从资源加载和解析 xml 时出现问题

    我已经编写了一个解析器 它可以从 HttpURLConnection 解析 xml 文件 这很好用 问题 我需要重写这个 以便从本地资源而不是从互联网加载 xml 文件 但我无法让它工作 只是为了让您了解原始 Web 解析器的外观 Inpu