Java jdom解析xml文件带冒号的属性

转载请标明出处:

https://dujinyang.blog.csdn.net/article/details/99644824

本文出自:【奥特曼超人的博客】

如果xml文件解析带了冒号的属性,一般都是要特别处理,这里是命名空间,N年前遇到过一次忘记记录,后来也忘了,这次再记录下。

解决了,记录下,分享给大家,百度到的都是没有任何用的,这里需要解析的是属性。

DOM4J 可以用,但是便于项目的轻量级,纠结了后,这次使用JDOM 。

以前使用的是正常节点的xml,现在是android的一些配置文件,所以之后出现一系列异常,比如:JDOM cannot handle metadata attributes with namespace prefix等等……

中间百度谷歌了一阵,没有结果,也看了XPath、Jaxen、XNode、XDocument等等,为何这么复杂还回去不到,已经获取到根节点的element了,想了下,jdom应该有考虑带解析冒号的,有的可以@代替,但jdom试了很久,没有结果。

最后还是分析了源代码很久才发现了问题:



既然我们需要的是带冒号的节点属性,那肯定是需要制定NameSpace命名空间的,不需要靠 XPATH 或者 jaxen的,不然它就是默认的命名空间了。

所以这里只需要指定一下就可以:

Namespace type=Namespace.getNamespace("android","http://schemas.android.com/apk/res/android");
System.out.println(ele.getAttributeValue("name",type));

XML文件:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
android:compileSdkVersion="29"
android:compileSdkVersionCodename="6.2-2438415"
android:installLocation="auto"
package="com.dujinyang.xxxx"
platformBuildVersionCode="23"
platformBuildVersionName="6.2-2438415">
<uses-feature android:glEsVersion="0x000520000"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.READ_LOGS"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
<uses-permission android:name="android.permission.GET_TASKS"/>
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
<application android:allowBackup="true" android:banner="@drawable/app_banner" android:debuggable="false" android:hasCode="true" android:icon="@drawable/app_icon" android:isGame="true" android:label="immqy" android:largeHeap="true" android:name="com.dujinyang.xxxx" android:theme="@style/UnityThemeSelector">
<activity android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|screenSize" android:icon="@drawable/app_icon" android:label="immqy" android:launchMode="singleTop" android:name="com.immqy.3d.activity.UnityMainActivity" android:screenOrientation="landscape">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
<category android:name="android.intent.category.LEANBACK_LAUNCHER"/>
</intent-filter>
</activity>
<meta-data android:name="unity.build-id" android:value="abc53v45wtw5aasdfg"/>
<meta-data android:name="unity.splash-mode" android:value="1"/>
<meta-data android:name="unity.splash-enable" android:value="true"/>
<meta-data android:name="android.max_aspect" android:value="3"/>
<meta-data android:name="POOLSDK_CHANNEL_ID" android:value="5201314"/>
<meta-data android:name="POOLSDK_CUSTOM_ID" android:value="{}"/>
<activity android:configChanges="keyboardHidden|orientation|screenSize" android:launchMode="singleTask" android:name="com.DUJINYANG.sdk.view.WebViewActivity" android:screenOrientation="portrait"/>
<service android:exported="true" android:name="com.ch.sys.sdk.service.FloatViewService"/>
<activity android:configChanges="keyboardHidden|orientation|screenSize" android:name="com.KARL.sdk.H5WebViewActivity" android:screenOrientation="portrait"/>
<meta-data android:name="SBSBSB" android:value="67329"/>
</application>
</manifest>

联系方式请看首页,如果大家有 疑难杂症 的可以看这里:《Bug 疑难杂症 | 不分语言》

|| 版权声明:本文为博主杜锦阳原创文章,转载请注明出处。

Java jdom解析xml文件带冒号的属性的更多相关文章

  1. 摘抄的 JAVA JDOM 操作XML文件

    JDOM修炼篇 用过XERCES的程序员都会感到,有时候用一句话就可以说清楚的事,当用XERCES的API来实现时,要三四行程序.   回页首 获得并安装JDOM 在 http://www.jdom. ...

  2. Java&Xml教程(六)使用JDOM解析XML文件

    JDOM 提供了非常优秀的Java XML API来更方便的读取.修改.生成XML文档.JDOM还提供了包装类供用户从SAX.DOM.STAX事件解析.STAX流解析中选择具体的实现. 在本教程中,我 ...

  3. 用JDOM解析XML文件时如何解决中文问题?如何解析?

    import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import ja ...

  4. JAVA JDOM解析XML 带CDATA数据

    import java.io.StringReader;import java.util.*; import org.jdom.Document;import org.jdom.Element;imp ...

  5. Java&Xml教程(七)使用JDOM修改XML文件内容

    JDOM提供了非常灵活的方式操作XML文件,使用JDOM非常简单而且代码简洁可读性强.前面我们学习了如何使用JDOM解析XML文件,本节介绍如何使用JDOM修改XML文件内容. 在这个教程中,我们准备 ...

  6. 深入浅出如何解析xml文件---下篇

    在上篇博文中,小编主要介绍xml的两种解析方式,分别是dom4j和dom,今天这篇博文,小编主要来简单介绍一下xml的其她两种解析方式sax和jdom.  sax解析xml文件 sax,全称是Simp ...

  7. jdom解析xml

    这次把代码整理了一下,打包发上来了,程序中需要用到的jar包也一起打在里面了,有兴趣的朋友可以解压后直接导入的eclipse里运行! xml是一种广为使用的可扩展标记语言,java中解析xml的方式有 ...

  8. Java--Dom解析XML文件

          之前写过几篇关于Java中解析XML文件的方法,不过,感觉不够简单,今天重写了一遍代码,用到的是方法是Dom,其中加入了日志记录功能--Log4j.       好了,不多说了,先把XMl ...

  9. JAVA解析XML文件(DOM,SAX,JDOM,DOM4j附代码实现)

    1.解析XML主要有四种方式 1.DOM方式解析XML(与平台无关,JAVA提供,一次性加载XML文件内容,形成树结构,不适用于大文件) 2.SAX方式解析XML(基于事件驱动,逐条解析,适用于只处理 ...

随机推荐

  1. 两个list合并成一个list的操作

    addAll  添加另一集合里面的元素 add 添加整个集合包括 [] Stream 操作 合并两个lis  出自http://www.it1352.com/963663.html public cl ...

  2. JVM-2-JVM结构

    什么是JVM        JVM是可运行Java代码的假想计算机 (或者理解为一种规范),包括一套字节码指令集.一组寄存器.一个栈.一个垃圾回收,堆 和 一个存储方法域.JVM是运行在操作系统之上的 ...

  3. 9. java API使用 - Scanner类

    一.API概述和使用 1. 概述 ​ API(应用程序编程接口).Java API是一本程序员字典,是JDK提供给我们使用的类的说明文档.这些类将底层的代码实现封装了起来,我们不需要关心这些类是如何实 ...

  4. 七夕节 (HDU - 1215) 【简单数论】【找因数】

    七夕节 (HDU - 1215) [简单数论][找因数] 标签: 入门讲座题解 数论 题目描述 七夕节那天,月老来到数字王国,他在城门上贴了一张告示,并且和数字王国的人们说:"你们想知道你们 ...

  5. 使用adb安装apk到手机

    [ADB]Android debug bridge.Android手机实际是基于Linux系统的.通过USB线将android手机与电脑连起来,在电脑上dos命令行中敲adb shell命令,可以登录 ...

  6. HTML页面导入模板页面(Tomcat)

    找了个前端模板,多个HTML中有重复的部分,一改都改,所以对其进行重构,将重复的部分拿出来 看了很多方法,最简单的是jQuery,但是在我这没起作用,后来发现一个配置tomcat的ssi,让服务器帮我 ...

  7. mathematica练习程序(曲线的曲率与挠率)

    曲线的曲率k表示曲线的弯曲程度. 计算公式: 曲线的挠率tao表示曲率平面的扭曲程度,平面曲线挠率为0. 计算公式: 这里r代表曲线方程,比如有如下曲线方程:r={a*cos(t),a*sin(t), ...

  8. vue中\$refs、\$emit、$on的使用场景

    1.$emit的使用场景 子组件调用父组件的方法并传递数据注意:子组件标签中的时间也不区分大小写要用“-”隔开 子组件: <template> <button @click=&quo ...

  9. js scroll事件

    滚动改变头部颜色,当滚动到最顶端头部颜色还原 滚动前 滚动后 代码

  10. Python模块import本质是什么?import是什么

    ​ 写这篇文章主要是对Python的import模块或包的机制有了更深层级的一个理解,也在具体工作中得到了一点实践,这种思考是由上一篇文章<__main__内置模块预加载Shotgun接口的妙用 ...