`
chris_freedream
  • 浏览: 32936 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
社区版块
存档分类
最新评论

获取XML根节点名称

阅读更多
package com.chris.regex;

import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.regex.PatternSyntaxException;

public class XMLRootSearcher {

	public String findRootElementName(String xml) {
		String result = null;

		Pattern regex = null;
		Matcher acceptor = null;

		try {
			// http://www.w3.org/TR/2004/REC-xml11-20040204/#NT-Name
			// Name ::= NameStartChar (NameChar)*
			String namePattern = "<(([:_A-Za-z\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02FF"
					+ "\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D"
					+ "\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD"
					+ "])([:_A-Za-z0-9\\."
					+ "\\xB7\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02FF\\u0370-\\u037D"
					+ "\\u0300-\\u036F\\u037F-\\u1FFF\\u200C-\\u200D"
					+ "\\u203F-\\u2040\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD"
					+ "\\-])*)";

			regex = Pattern.compile(namePattern, Pattern.CANON_EQ);

			acceptor = regex.matcher(xml);
		} catch (PatternSyntaxException pse) {
			pse.printStackTrace(System.err);

			return result;
		}

		if (acceptor.find()) {
			if (null != acceptor.group(1)) {
				result = acceptor.group(1);
			}
		}

		return result;
	}
	
	public static void main(String[] args) {
		
		String xmlStr = "<?xml version=\"1.0\" encoding=\"utf-8\"?><books><book></book></books>";
		XMLRootSearcher searcher = new XMLRootSearcher();
		System.out.println( searcher.findRootElementName( xmlStr ) );
		
	}

}


运行结果:
books

分享到:
评论

相关推荐

    dom4j解析xml字符串

    publicvoid readStringXml(String xml) { ... // 拿到根节点的名称 Iterator iter = rootElt.elementIterator("head"); // 获取根节点下的子节点head // 遍历head节点 while (iter.hasNext()) {

    一个ajax功能的JS xml读取封装类代码.rar

    加载XML文件,使用同步的Get方式获取xml文件,为根节点增加一个Menu_ID属性,并赋值为Menu,遍历XML中的所有节点,取得指定节点的所有属性名称和值,产生指定数量的空格,用于缩进来表示层级关系,计算节点下的子...

    xml入门教程/xml入门教程

    2.xml文件是由元素和元素的内容以及属性组成的,一个xml文件中只能有一个根元素,标签和标签的内容加在一起叫作一个元素。xml是大小写 敏感的,只能以字母或下划线开头。 字符转义 &lt; 代表 ", &gt; 代表 "&gt;" , &...

    XML操作类

    RootName 根节点名称;XmlFilePath 文件路径; 方法:1、GetXmlNodeAttribute(int NodeIndex, string strNodePath, string strAttribute)获取节点的属性值 2、SetXmlNodeAttribute(int NodeIndex, string ...

    浅谈Python大神都是这样处理XML文件的

    2、打开文件,并获取根节点的属性和节点名称 运行代码后,结果如下所示: 3、利用find方法获取子节点(缺点:只能根据提供的名称获取第一个子节点) 运行结果如下所示: 4、利用findall方法获取所有子节点,返回的...

    day023-xml解析笔记和代码.rar

    获取根节点 root = document.getRootElement(); 5. 通过父签添加子标签(元素) Element element = root.addElement("标签名");//返回值就是要添加的元素对象 给子标签添加值 element...

    Info.plist

    每个application都使用Info.plist文件来存储以上的元信息,从名称上也可以判断出Info.plist...XML的根节点是一个词典(dictionary),包含描述bundle各个方面的keys和values。系统读取该文件,并获取app的配置信息。

    新浪阅读器的二次开发

    //获取属性(根节点) XmlNode root = doc.SelectSingleNode("rss"); MessageBox.Show(root .Attributes ["version"].Value ); 4:获取text的内容 String title = itemlist[i].SelectSingleNode("title")....

    《javaScrip开发技术大全》源代码

    • sample10.htm 获取日期对象中时间部分 • sample11.htm 以毫秒表示法设置和返回日期对象的毫秒表示法 • sample12.htm 获得当前时间的毫秒表示 • sample13.htm 获得指定时间的...

    统计平台数据获取和解析

    于是通过程序,将所有字典的所有层级的字典项都获取到,然后以字典为根,字典项为子节点,构建了字典树的数据结构。在此结构的基础上,将树展开转换成excel表格的行数据并导出。该示例工程包含了表、表字段、字典、...

    Javascript 文档管理器

    11.资源文件: 资源文件\xyTree\config.xml, 目录树位于此处. 请不要手动修改次文件, 以免造成不必要的数据丢失或者软件崩溃. 注意,根结点没有文档功能; 要改变字体颜色和显示状态, 必须先选中需要改变的文字. -- by ...

    C# 配置文件概述

    配置文件概述: 应用程序配置文件是标准的XML 文件 XML 标记和属性是区分大小写的 它是可以 按需要更改的 开发人员可以使用配置文件来更改设置 而不必重编译应用...文件的根节点是configuration 我们经常访问的 [更多]

Global site tag (gtag.js) - Google Analytics