当前位置: 首页 > 面试题库 >

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

沈俊晤
2023-03-14
问题内容

我已经编写了一个解析器,用于解析HttpURLConnection中的xml文件。这很好。

问题:我需要重写此文件,以便从本地资源而不是从Internet加载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文件和网络文件完全相同…如果有人看的话:http
:
//agens.no/Eniro/Android/SEWheel/Category2.plist.xml

这是堆栈跟踪:02-01 16:08:45.546:WARN /
System.err(19703):org.xml.sax.SAXParseException:期望的名称(位置:java.io.InputStreamReader@476687中的START_TAG
@ 1:309)

非常感谢您的帮助:)


问题答案:

找到了答案。当文件是res / xml文件夹时,inputstream显示了很多无效字符。当我将它放在res / raw文件夹中时,它工作正常。



 类似资料:
  • 了解网络下载资源的阶段至关重要。这是修复加载问题的基础。 TL;DR 了解资源时序的阶段。 知道每个阶段提供给Resource Timing(资源时序)API。 在时间轴图表中识别性能问题的不同指示。如连续的透明条或大块绿色。 所有网络请求都被视为资源。当它们通过网络检索时,分为不同的生命周期。Network(网络)面板使用的Resource Timing API和提供给开发者的API是一样的。注

  • 我正在使用Saxon 9.4家庭版(Saxon-HE 9.4. NET)来获得对XSLT 2.0和XPath 2.0以及XQuery 1.0的支持。NET。当我加载没有URI的文件时,我的代码会崩溃。 是否可以在没有与加载的文档相关的URI的情况下加载xml/xsl文档 如果没有,是否有任何方法可以为嵌入在dll文件中的元素定义URI 任何其他解决方案也将被理解,我唯一的术语是文件必须从dll文件

  • 在使用Maven捆绑JAR文件中的资源时,我有一种感觉,我错过了一些关键的东西。我的目录结构是标准的Maven结构(即\src\main\java,\src\main\Resources)。 使用IDE时,我将资源文件引用为\main\resources\images\blah。。。它工作得很好,但当Maven捆绑JAR文件时,它会将路径放在相对于根的位置(“\ images\blah”),因此没

  • 问题内容: 我在Linux,Elementary OS中,并在opt中安装了lampp。 我的CSS和JS无法加载。当我通过浏览器检查页面时。控制台显示“无法加载资源:服务器以403(禁止)” 状态响应我真的确定我的目录正确。这是我的工作空间 这是错误 问题答案: 您需要更改文件夹bootstrap / css的权限。您的超级用户也许可以访问它,但这并不意味着apache或nginx可以访问它,因

  • 我在加载静态资源方面遇到了问题,比如图像、css样式等...在Spring5中,当我添加安全性时,没有安全性它加载ok Spring腹板 沉香树 Spring Security 因此我创建了一个名为/assets/imgs的文件夹 在src/main/resources/static/中 我在文件夹中添加了一个假图像,名为fake-image.png 在eclipse console中,我会收到以

  • 问题内容: 我正在用Python阅读JSON文件,其中包含许多字段和值(约8000条记录)。Env:Windows 10,Python 3.6.4;码: 这样我得到一个错误。下面是堆栈跟踪: 伴随着我,我尝试了 与此相关,我的程序运行了很长时间,然后挂起,没有任何输出。 我搜索了几乎与此相关的所有主题,但找不到解决方案。 注意:JSON数据是有效的,因为当我在Postman /任何REST客户端上