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
分享到:
相关推荐
publicvoid readStringXml(String xml) { ... // 拿到根节点的名称 Iterator iter = rootElt.elementIterator("head"); // 获取根节点下的子节点head // 遍历head节点 while (iter.hasNext()) {
加载XML文件,使用同步的Get方式获取xml文件,为根节点增加一个Menu_ID属性,并赋值为Menu,遍历XML中的所有节点,取得指定节点的所有属性名称和值,产生指定数量的空格,用于缩进来表示层级关系,计算节点下的子...
2.xml文件是由元素和元素的内容以及属性组成的,一个xml文件中只能有一个根元素,标签和标签的内容加在一起叫作一个元素。xml是大小写 敏感的,只能以字母或下划线开头。 字符转义 < 代表 ", > 代表 ">" , &...
RootName 根节点名称;XmlFilePath 文件路径; 方法:1、GetXmlNodeAttribute(int NodeIndex, string strNodePath, string strAttribute)获取节点的属性值 2、SetXmlNodeAttribute(int NodeIndex, string ...
2、打开文件,并获取根节点的属性和节点名称 运行代码后,结果如下所示: 3、利用find方法获取子节点(缺点:只能根据提供的名称获取第一个子节点) 运行结果如下所示: 4、利用findall方法获取所有子节点,返回的...
获取根节点 root = document.getRootElement(); 5. 通过父签添加子标签(元素) Element element = root.addElement("标签名");//返回值就是要添加的元素对象 给子标签添加值 element...
每个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")....
• sample10.htm 获取日期对象中时间部分 • sample11.htm 以毫秒表示法设置和返回日期对象的毫秒表示法 • sample12.htm 获得当前时间的毫秒表示 • sample13.htm 获得指定时间的...
于是通过程序,将所有字典的所有层级的字典项都获取到,然后以字典为根,字典项为子节点,构建了字典树的数据结构。在此结构的基础上,将树展开转换成excel表格的行数据并导出。该示例工程包含了表、表字段、字典、...
11.资源文件: 资源文件\xyTree\config.xml, 目录树位于此处. 请不要手动修改次文件, 以免造成不必要的数据丢失或者软件崩溃. 注意,根结点没有文档功能; 要改变字体颜色和显示状态, 必须先选中需要改变的文字. -- by ...
配置文件概述: 应用程序配置文件是标准的XML 文件 XML 标记和属性是区分大小写的 它是可以 按需要更改的 开发人员可以使用配置文件来更改设置 而不必重编译应用...文件的根节点是configuration 我们经常访问的 [更多]