Java jdom解析xml文件带冒号的属性
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文件带冒号的属性的更多相关文章
- 摘抄的 JAVA JDOM 操作XML文件
JDOM修炼篇 用过XERCES的程序员都会感到,有时候用一句话就可以说清楚的事,当用XERCES的API来实现时,要三四行程序. 回页首 获得并安装JDOM 在 http://www.jdom. ...
- Java&Xml教程(六)使用JDOM解析XML文件
JDOM 提供了非常优秀的Java XML API来更方便的读取.修改.生成XML文档.JDOM还提供了包装类供用户从SAX.DOM.STAX事件解析.STAX流解析中选择具体的实现. 在本教程中,我 ...
- 用JDOM解析XML文件时如何解决中文问题?如何解析?
import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import ja ...
- JAVA JDOM解析XML 带CDATA数据
import java.io.StringReader;import java.util.*; import org.jdom.Document;import org.jdom.Element;imp ...
- Java&Xml教程(七)使用JDOM修改XML文件内容
JDOM提供了非常灵活的方式操作XML文件,使用JDOM非常简单而且代码简洁可读性强.前面我们学习了如何使用JDOM解析XML文件,本节介绍如何使用JDOM修改XML文件内容. 在这个教程中,我们准备 ...
- 深入浅出如何解析xml文件---下篇
在上篇博文中,小编主要介绍xml的两种解析方式,分别是dom4j和dom,今天这篇博文,小编主要来简单介绍一下xml的其她两种解析方式sax和jdom. sax解析xml文件 sax,全称是Simp ...
- jdom解析xml
这次把代码整理了一下,打包发上来了,程序中需要用到的jar包也一起打在里面了,有兴趣的朋友可以解压后直接导入的eclipse里运行! xml是一种广为使用的可扩展标记语言,java中解析xml的方式有 ...
- Java--Dom解析XML文件
之前写过几篇关于Java中解析XML文件的方法,不过,感觉不够简单,今天重写了一遍代码,用到的是方法是Dom,其中加入了日志记录功能--Log4j. 好了,不多说了,先把XMl ...
- JAVA解析XML文件(DOM,SAX,JDOM,DOM4j附代码实现)
1.解析XML主要有四种方式 1.DOM方式解析XML(与平台无关,JAVA提供,一次性加载XML文件内容,形成树结构,不适用于大文件) 2.SAX方式解析XML(基于事件驱动,逐条解析,适用于只处理 ...
随机推荐
- 两个list合并成一个list的操作
addAll 添加另一集合里面的元素 add 添加整个集合包括 [] Stream 操作 合并两个lis 出自http://www.it1352.com/963663.html public cl ...
- JVM-2-JVM结构
什么是JVM JVM是可运行Java代码的假想计算机 (或者理解为一种规范),包括一套字节码指令集.一组寄存器.一个栈.一个垃圾回收,堆 和 一个存储方法域.JVM是运行在操作系统之上的 ...
- 9. java API使用 - Scanner类
一.API概述和使用 1. 概述 API(应用程序编程接口).Java API是一本程序员字典,是JDK提供给我们使用的类的说明文档.这些类将底层的代码实现封装了起来,我们不需要关心这些类是如何实 ...
- 七夕节 (HDU - 1215) 【简单数论】【找因数】
七夕节 (HDU - 1215) [简单数论][找因数] 标签: 入门讲座题解 数论 题目描述 七夕节那天,月老来到数字王国,他在城门上贴了一张告示,并且和数字王国的人们说:"你们想知道你们 ...
- 使用adb安装apk到手机
[ADB]Android debug bridge.Android手机实际是基于Linux系统的.通过USB线将android手机与电脑连起来,在电脑上dos命令行中敲adb shell命令,可以登录 ...
- HTML页面导入模板页面(Tomcat)
找了个前端模板,多个HTML中有重复的部分,一改都改,所以对其进行重构,将重复的部分拿出来 看了很多方法,最简单的是jQuery,但是在我这没起作用,后来发现一个配置tomcat的ssi,让服务器帮我 ...
- mathematica练习程序(曲线的曲率与挠率)
曲线的曲率k表示曲线的弯曲程度. 计算公式: 曲线的挠率tao表示曲率平面的扭曲程度,平面曲线挠率为0. 计算公式: 这里r代表曲线方程,比如有如下曲线方程:r={a*cos(t),a*sin(t), ...
- vue中\$refs、\$emit、$on的使用场景
1.$emit的使用场景 子组件调用父组件的方法并传递数据注意:子组件标签中的时间也不区分大小写要用“-”隔开 子组件: <template> <button @click=&quo ...
- js scroll事件
滚动改变头部颜色,当滚动到最顶端头部颜色还原 滚动前 滚动后 代码
- Python模块import本质是什么?import是什么
写这篇文章主要是对Python的import模块或包的机制有了更深层级的一个理解,也在具体工作中得到了一点实践,这种思考是由上一篇文章<__main__内置模块预加载Shotgun接口的妙用 ...