使用从XML文件中提取的数据创建正则表达式 [英] Create a regular expression using data extracted from an XML file
本文介绍了使用从XML文件中提取的数据创建正则表达式的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在解析一个xml文件,其中包含如下文本的节点:
I'm parsing an xml file, that has nodes with text like this:
<?xml version="1.0" encoding="iso-8859-1"?>
<country>
<name> France </name>
<city> Paris </city>
<region>
<name> Nord-Pas De Calais </name>
<population> 3996 </population>
<city> Lille </city>
</region>
<region>
<name> Valle du Rhone </name>
<city> Lyon </city>
<city> Valence </city>
</region>
</country>
我想要的是像这样的价值:
What I want to get is values like this:
country -> name.city.region*
region -> name.(population|epsilon).city*
name -> epsilon
city -> epsilon
population -> epsilon
我无法找出一种方法来实现
I can't figure out a method to do that
推荐答案
我已经添加了一个示例程序。请继续阅读相同的方式。
I have added a sample program. Please continue with reading same way.
public class TextXML {
public static void main(String[] args) {
try {
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.parse(new File("text.xml"));
// list of country elements
NodeList listOfCountry = doc.getElementsByTagName("country");
for (int s = 0; s < listOfCountry.getLength(); s++) {
Node countyNode = listOfCountry.item(s);
if (countyNode.getNodeType() == Node.ELEMENT_NODE) {
Element countyElement = (Element) countyNode;
NodeList nameList = countyElement.getElementsByTagName("name");
// we have only one name. Element Tag
Element nameElement = (Element) nameList.item(0);
System.out.println("Name : " + nameElement.getTextContent());
NodeList cityList = countyElement.getElementsByTagName("city");
// we have only one name. Element Tag
Element cityElement = (Element) cityList.item(0);
System.out.println("City : " + cityElement.getTextContent());
NodeList regionList = countyElement.getElementsByTagName("region");
// we have only one name. Element Tag
Element regionElement = (Element) regionList.item(0);
System.out.println("Region : " + regionElement.getTextContent());
//continue further same way.
}
}
} catch (SAXParseException err) {
err.printStackTrace();
} catch (SAXException e) {
Exception x = e.getException();
((x == null) ? e : x).printStackTrace();
} catch (Throwable t) {
t.printStackTrace();
}
}
}
这篇关于使用从XML文件中提取的数据创建正则表达式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文