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

jdom 解析xml文件带冒号的属性,第1张

概述jdom解析xml文件带冒号属性转载请标明出处:https://dujinyang.blog.csdn.net/article/details/99644824本文出自:【奥特曼超人的博客】如果xml文件解析带了冒号的属性,一般都是要特别处理,这里是命名空间,N年前遇到过一次忘记记录,后来也忘了,这次再记录下。解决了,记录 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 疑难杂症 | 不分语言》

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

总结

以上是内存溢出为你收集整理的jdom 解析xml文件带冒号的属性全部内容,希望文章能够帮你解决jdom 解析xml文件带冒号的属性所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/web/1111924.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存