`
kane82
  • 浏览: 25381 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

XML文件节点转化为大写方式

XML 
阅读更多
最近项目中需要对xml文件进行解析!有时候会遇到xml的节点大小写不一致的问题,因此写了个方法把xml文件中的节点全部转为大写的方式,在这里做个备忘。代码如下,
	public static Element elementToUpper(Element ele){
		ele.setName(ele.getName().toUpperCase());
		List<Attribute> attrList = ele.getAttributes();
		if(!attrList.isEmpty()){
			for(int i=0, m = attrList.size(); i < m; i++){
				Attribute attr = attrList.get(i);
				attr.setName(attr.getName().toUpperCase());
			}
		}
		List<Element> eleList = ele.getChildren();
		if(!eleList.isEmpty()){
			for(int i=0, m=eleList.size(); i<m; i++){
				Element element = eleList.get(i);
				element.setName(element.getName().toUpperCase());
				elementToUpper(element);
			}
		}
		return ele;
	}


下面这个是把xml文件中的值根据节点名称存放到Map中:
	public static Map<String, String> getElementAll(Element ele){
		Map<String, String> map = new HashMap<String, String>();
		List<Attribute> attrList = ele.getAttributes();
		if(!attrList.isEmpty()){
			for(int i=0, m = attrList.size(); i < m; i++){
				Attribute attr = attrList.get(i);
				map.put(ele.getName().toUpperCase() + attr.getName().toUpperCase(), attr.getValue());
			}
		}
		List<Element> eleList = ele.getChildren();
		if(!eleList.isEmpty()){
			for(int i=0, m=eleList.size(); i<m; i++){
				Element element = eleList.get(i);
				Map<String, String> eleMap = getElementAll(element);
				mapPutAll(map, eleMap);
			}
		}else if(null != ele.getValue() && ele.getValue().length() > 0){
			map.put(ele.getName().toUpperCase(), ele.getValue());
		}
		return map;
	}


	/**
	 * 将源Map拷贝到目标Map当中
	 * 如果目标Map存在源Map中的对象,则在原key值上加上一个“_1”,如果还存在则“_2”,
	 * 如:key,key_1,key_2...
	 * @param target
	 * @param source
	 * @return
	 * @author kane xiang
	 */
	private static Map<String, String> mapPutAll(Map<String, String> target, Map<String, String> source){
		int num = 1;
		boolean bool = true;
		Iterator<Entry<String, String>> it = source.entrySet().iterator();
		while(it.hasNext()){
			bool = true;
			Entry<String, String> entry = it.next();
			if(null == target.get(entry.getKey())){
				target.put(entry.getKey(), entry.getValue());
			}else{
				while(bool){
					String key = entry.getKey() + "_" + num;
					if(null == target.get(key)){
						target.put(key, entry.getValue());
						bool = false;
					}else{
						num ++;
					}
				}
			}
		}
		return target;
	}
分享到:
评论

相关推荐

    Axis2 SOAP XML报文节点首字母小写转大写,节点命名空间前缀添加与剔除(JAVA)

    这段代码首先加载SOAP XML文件,然后遍历所有元素节点,如果元素首字母是小写,则将其改为大写。最后,将修改后的文档写入新的XML文件。 其次,处理SOAP XML报文中的命名空间前缀,有时我们需要添加或剔除命名空间...

    Axis2的OMElement SOAP XML报文节点首字母小写转大写(注意,是节点,不是节点元素的值) java

    当我们处理SOAP XML报文时,有时会遇到需要转换XML节点名的情况,例如将节点名的首字母从小写转换为大写。以下将详细探讨这个主题。 首先,理解XML节点和节点元素的区别是至关重要的。在XML文档中,节点可以是元素...

    XML项目技术

    2. **DOM树的概念**:在处理XML文档时,可以将XML文档视为一棵树形结构,其中每个元素都是一个节点。例如: - `&lt;班级&gt;`:根节点。 - `&lt;学生编号="A0002"&gt;`:根节点下的子节点。 - `&lt;姓名&gt;王五姓名&gt;`:学生节点下...

    XML笔记与实例讲解

    - **XSLT**:例如,以下XSLT片段将所有`&lt;title&gt;`元素转化为大写: ```xml &lt;h1&gt;&lt;xsl:value-of select="." /&gt; ``` - **XPath**:在XSLT中,可以使用XPath表达式来定位XML文档中的节点。例如...

    jacascript DOM节点——元素节点、属性节点、文本节点

    它将文档结构转换为一个树形结构,使得我们可以通过JavaScript来访问和修改文档中的各个部分。DOM节点是这个树形结构的基本单位,主要包括元素节点、属性节点和文本节点。 **元素节点** 是DOM中最核心的部分,它们...

    XLMFileTest.rar

    XSLT则可以将一个XML文档转换为另一个XML文档,或者HTML、PDF等格式,以改变数据的呈现方式。例如,一个简单的XSLT转换可能将所有`&lt;name&gt;`元素替换为大写的文本。 总的来说,XML是一种强大的数据表示和交换工具,...

    DOMSAXXSL入门小例子

    在IT领域,DOM(Document Object Model)和SAX(Simple API for XML)是两种常见的XML解析方式,而XSL(eXtensible Stylesheet Language)则用于转换XML文档的结构和格式。这篇教程将带你入门这三种技术的基础概念和...

    xsl学习笔记,入门知识

    例如,以下是一个简单的XSLT模板,它将XML文档中的所有`&lt;name&gt;`元素替换为大写的文本: ```xml ``` 这个例子中的`match="name"`表示模板匹配XML中的`&lt;name&gt;`元素,`&lt;xsl:value-of select="."/&gt;`则用于输出...

    Xpath个人免费版.rar

    它被设计用来方便地选取XML节点,包括元素、属性、文本等。XPath基于W3C标准,为XML处理提供了一种强大而灵活的方法。 XPath 2.0是XPath语言的第二个主要版本,相较于1.0版本,它引入了许多新特性,如支持更多的...

    js基础之DOM中元素对象的属性方法详解

    5. element.nodeName:返回元素的节点名称,通常为大写字母形式的标签名。 6. element.nodeType:返回节点类型,例如元素节点类型为1。 7. element.nodeValue:返回节点的值,对元素节点而言,这个值为null。 8. ...

    freemark学习文档

    - **`xml`**:将内容转换为XML安全的形式。 - **`web_safe`**:将内容转换为适合网络使用的格式。 - **`eval`**:计算表达式的值。 - **`is_transform`**:判断是否是一个转换器。 - **`string`**:处理字符串相关的...

    Python 面试100讲(基于Python3.x).zip

    但是,你可以通过内置函数如`lower()`将字符串转换为全小写,`upper()`转为全大写,或者`title()`使每个单词首字母大写。此外,`str.capitalize()`方法用于将字符串的第一个字符转换为大写,而其余字符保持小写。 ...

    XSLT Cookbook

    例如,将字符串$s$转换为大写: ```xslt ($s)"/&gt; ``` **1.9 对字符串进行分词** 对字符串进行分词可以使用`tokenize`函数实现。例如,按照空格对字符串$s$进行分词: ```xslt ($s, '\s+')"&gt; ``` **1.10 不...

    freemark手册

    在处理XML或类似结构化数据时,节点变量变得尤为有用,它们可以表示XML文档中的各个元素。 ##### 2.7 对象包裹 对象包裹器决定如何将Java对象转化为FreeMarker可识别的类型,这对于复杂对象和自定义类尤为重要。 ...

    PHP函数大全

    这是将XML文档转换为更易于处理的数据格式的方法之一。 #### 46. xml_parse() `xml_parse()`函数解析XML数据。这是XML解析的核心操作,用于将XML文档转换为可理解的数据。 #### 47. xml_get_error_code() `xml_get...

    Utility常用函数

    - `ToLower()`/`ToUpper()`: 将字符串转换为小写或大写。 - `Substring()`: 获取字符串的一部分。 - `Replace()`: 在字符串中替换特定字符或子串。 - `Split()`: 按照指定分隔符将字符串分割成多个子字符串。 2...

    Update_eventid.zip

    5. 字符串方法:Python提供了许多内置的字符串方法,如`upper()`(转换为大写),`lower()`(转换为小写),`replace(old, new)`(替换子串),`strip()`(去除两侧空白),等等。 6. 使用`split()`和`join()`处理...

    Android考试1.doc

    - 第8题:res/raw目录中的文件会原封不动地存储到设备上,不会转换为二进制格式。 - 第9题:Math.round函数将浮点数四舍五入,11.5会被转化为12,-11.5会被转化为-11。 - 第10题:销毁线程通常使用onDestroy()...

Global site tag (gtag.js) - Google Analytics