导航:首页 > 编程语言 > java提取xml内容

java提取xml内容

发布时间:2024-09-10 23:00:54

❶ 如何用java程序从xml文件中根据文本内容获取指定标签并删除标签和内容

XML文件的表现:以“.xml”为文件扩展名的文件;

存储结构:树形结构;

❷ Java里面怎么解析xml文件的内容

File f = new File(System.getProperty("user.dir") + File.separator
+ "src/userfile.xml");// 定位文件
reader = new SAXReader();
try {
doc = reader.read(f);// 读取文件
} catch (DocumentException e) {
e.printStackTrace();
}
Element root = doc.getRootElement();// 得到根节点
Element connect = root.element("connect");// 取得connect节点
Element user = root.element("user");// 取得user节点
Element ipEle = connect.element("ip");// 取得ip节点
Element portEle = connect.element("port");// 取得ip节点
Element nameEle = user.element("name");// name
Element dirEle = user.element("dir");// dir

String ip = ipEle.getText();// ip
String port = portEle.getText();
String name = nameEle.getText();
String dir = dirEle.getText();

❸ Java里面怎么解析xml文件的内容

java解析Xml文件的标准范例:
File f = new File(System.getProperty("user.dir") + File.separator
+ "src/userfile.xml");// 定位文件
reader = new SAXReader();
try {
doc = reader.read(f);// 读取文件
} catch (DocumentException e) {
e.printStackTrace();
}
Element root = doc.getRootElement();// 得到根节点
Element connect = root.element("connect");// 取得connect节点
Element user = root.element("user");// 取得user节点
Element ipEle = connect.element("ip");// 取得ip节点
Element portEle = connect.element("port");// 取得ip节点
Element nameEle = user.element("name");// name
Element dirEle = user.element("dir");// dir

String ip = ipEle.getText();// ip
String port = portEle.getText();
String name = nameEle.getText();
String dir = dirEle.getText();

❹ java读取配置文件的方法(xml)

用的是jdom包

URL url = RederXml.class.getClassLoader().getResource("");
String path = url.toString() + "/config.xml";\\工程种xml的路径
HashMap<String, String> map = new HashMap<String, String>();
SAXBuilder sax = new SAXBuilder();
Document doc = null;
try {
doc = sax.build(path);
} catch (JDOMException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
Element root = doc.getRootElement();

❺ 如何用Java实现对xml文件的读取和写入以及保存

直接附源码import java.io.FileWriter;
import java.io.IOException;
import java.util.Iterator;import org.dom4j.*;
import org.dom4j.io.XMLWriter;
public class Dom4jSample { public static void main(String[] args) {
Dom4jSample dom4jSample = new Dom4jSample();
Document document = dom4jSample.createDocument();
try{
dom4jSample.FileWrite(document);

Document documentStr = dom4jSample.StringToXML("<China>I Love!</China>");
dom4jSample.XMLWrite(documentStr);

Element legend = dom4jSample.FindElement(document);
System.out.println(legend.getText());
}
catch(Exception e)
{

}
}

/*
* Create a XML Document
*/
public Document createDocument()
{
Document document = DocumentHelper.createDocument();

Element root = document.addElement("root");

Element author1 = root.addElement("Lynch");
author1.addAttribute("Age","25");
author1.addAttribute("Country","China");
author1.addText("I am great!");

Element author2 = root.addElement("Legend");
author2.addAttribute("Age","25");
author2.addAttribute("Country","China");
author2.addText("I am great!too!");

return document;
}

/*
* Create a XML document through String
*/
public Document StringToXML(String str) throws DocumentException
{
Document document = DocumentHelper.parseText(str);
return document;
}
public Element FindElement(Document document)
{
Element root = document.getRootElement();
Element legend = null;
for(Iterator i=root.elementIterator("legend");i.hasNext();)
{
legend = (Element)i.next();
}
return legend;
}

/*
* Write a XML file
*/
public void FileWrite(Document document) throws IOException
{
FileWriter out = new FileWriter("C:/Dom2jSample.xml");
document.write(out);
out.close();
}

/*
* Write a XML format file
*/
public void XMLWrite(Document document) throws IOException
{
XMLWriter writer = new XMLWriter(new FileWriter("C:/Dom2jSampleStr.xml"));
writer.write(document);
writer.close();
}
}

❻ 如何用java解析xml文档,然后将数据存到数据库

package test11;
import javax.xml.parsers.*;
import org.w3c.dom.*;

import java.io.*;
public class XMLUtil
{
//该方法用于从XML配置文件中提取具体类类名,并返回一个实例对象
public static Object getBean()
{
try
{
//创建文档对象
DocumentBuilderFactory dFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = dFactory.newDocumentBuilder();
Document doc;
doc = builder.parse(new File("config.xml"));

//获取包含类名的文本节点
NodeList nl = doc.getElementsByTagName("className");
Node classNode=nl.item(0).getFirstChild();
String cName=classNode.getNodeValue();

//通过类名生成实例对象并将其返回
Class c=Class.forName(cName);
Object obj=c.newInstance();
return obj;
}
catch(Exception e)
{
e.printStackTrace();
return null;
}
}
}

<?xml version="1.0"?>
<config>
<className>test11.CatAdapter</className>
</config>
然后你吧解析处理的值放到数组或LIST或其他的你能存放的对象中。再写SQL插入到数据库就好了啊。主要数据库事务处理或用批处理

❼ java中怎样取出XML格式字符串的节点属性

这个可以用正则表达式来实现。。。

要看你xml具体内容,才能确定表达式该怎么写,我给你举个简单的例子

<a><b>hello</b><b>world</b></a>想提取出b标签里面的内容可以用下面的代码实现

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

public class Test {
public static void main(String[] args){
String s = "<a><b>hello</b><b>world</b></a>";
Pattern pattern = Pattern.compile("<b>(.*?)</b>");
Matcher matcher = pattern.matcher(s);
while(matcher.find()){
System.out.println(matcher.group(1));
}
}
}

运行结果:
hello
world

如果很复杂的话。。。可以用专门的解析XML的来解析。。。一般的自己写个正则就可以解决了。。

希望能帮到你。。。仍有问题可以继续追问或者直接HI我。。。

❽ 怎样用java从xml里读取数据 并且保存为txt格式

有XML文件内容:
<?xml version="1.0" encoding="UTF-8"?>
<Root>
<Seg>abc123</Seg>
<Seg>123abc</Seg>
</Root>
从XML读取数据有两种理解,
一种是从XML的节点中读取数据,如上面的内容就是分别读取到abc123 和 123abc,供后续程序使用。这种读取一般需要使用Java 的一些XML API,如dom4j就可以,具体网上用“java xml”关键字搜一下一大片;
另外一种就是把XML的内容作为文本处理,感觉楼主的意思应该是这种。其实XML文件本身就是平文件,直接用InputStream读取后转回成String,想怎么处理都可以。如:
FileInputStream fos = new FileInputStream(xmlFile);
File f = new File(xmlFile);
int length=(int)f.length();
//log.debug("[IO.getFileAsString] length = " + length);
byte[] buf = new byte[length];
fos.read(buf);
String encoding = "UTF-8";
String s = new String(buf,encoding);
至于想保存为txt,可以直接改文件后缀名,把xml改为txt就可以。当然,也可以把上面读取到的String用OutputStream输出到一个新的txt文件

❾ JAVA技术:XML配置文件的读取处理


Java和XML是黄金组合,网上已经有很多文章介绍,XML作为电子商务中数据交换,已经有其不可替代的作用,但是在平时系统开发中,我们不一定都用到数据交换,是不是无法使用XML了?
当然不是,现在已经有一个新趋势,java程序的配置文件都开始使用XML格式,以前是使用类似windows的INI格式。(Java中也有Propertiesy这样的类专门处理这样的属性配置文件)。使用XML作为Java的配置文件有很多好处,从Tomcat的安装配置文件和J2ee的配置文件中,我们已经看到XML的普遍应用,让我们也跟随流行趋旦饥势用XML武装起来。
现在关键是如何读取XML配置模余返文件?有好几种XML解析器:主要有DOM和SAX ,这些区别网上文章介绍很多。
在apache的XML项目组中,目前有Xerces Xalan Cocoon几个开毁让发XML相关技术的project.Tomcat本身使用的是 Sun 的 JAXP,而其XSL Taglib project中使用Xerces解析器。
好了,上面都是比较烦人的理论问题,还是赶快切入XML的配置文件的读取吧。
在我们的程序中,通常要有一些根据主机环境确定的变量。比如数据库访问用户名和密码,不同的主机可能设置不一样。只要更改XML配置文件,就可以正常运行。
localhost
sqlname
username
password
上面这个myenv.xml配置文件一般是放在tomcat的WEB-INF/classes目录下。
我们编制一个Java程序直接读取,将dbhost dbuser dbpassword提取出来供其他程序访问数据库用。
目前使用SAX比较的多,与DOM主要区别是 SAX是一行一行读取XML文件进行分析,适合比较大文件,DOM是一次性读入内存,显然不能对付大文件。这里我们使用SAX解析,由于SAX解析器不断在发展,网上有不少文章是针对老版本的。如果你使用JDK1.4 ,可以参考 使用SAX处理XML文档 一文。这里的程序是根据其改进并且经过实践调试得来的。
对上面myenv.xml读取的Java程序:
import org.xml.sax.Attributes;
import org.xml.sax.helpers.DefaultHandler;
import org.xml.sax.SAXException;
import java.util.Properties;
//使用DefaultHandler的好处 是 不必陈列出所有方法,
public class ConfigParser extends DefaultHandler {
////定义一个Properties 用来存放 dbhost dbuser dbpassword的值
private Properties props;
private String currentSet;
private String currentName;
private StringBuffer currentValue = new StringBuffer();
//构建器初始化props
public ConfigParser() {
this.props = new Properties();
}
public Properties getProps() {
return this.props;
}
//定义开始解析元素的方法. 这里是将中的名称xxx提取出来.
public void startElement(String uri, String localName, String qName, Attributes attributes)
throws SAXException {
currentValue.delete(0, currentValue.length());
this.currentName =qName;
}
//这里是将之间的值加入到currentValue
public void characters(char[] ch, int start, int length) throws SAXException {
currentValue.append(ch, start, length);
}
//在遇到结束后,将之前的名称和值一一对应保存在props中
public void endElement(String uri, String localName, String qName) throws SAXException {
props.put(qName.toLowerCase(), currentValue.toString().trim());
}
}
上面的这个解析程序比较简单吧? 其实解析XML就是这么简单。
现在我们已经将dbhost dbuser dbpassword的值localhost sqlname username password提取了出来。但是这只是在在解析器内部,我们的程序还不能访问。需要再编制一个程序。
import java.util.Properties;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import .URL;
public class ParseXML{
//定义一个Properties 用来存放 dbhost dbuser dbpassword的值
private Properties props;
//这里的props
public Properties getProps() {
return this.props;
}
public void parse(String filename) throws Exception {
//将我们的解析器对象化
ConfigParser handler = new ConfigParser();
//获取SAX工厂对象
SAXParserFactory factory = SAXParserFactory.newInstance();
factory.setNamespaceAware(false);
factory.setValidating(false);
//获取SAX解析
SAXParser parser = factory.newSAXParser();
//得到配置文件myenv.xml所在目录. tomcat中是在WEB-INF/classes
//下例中BeansConstants是用来存放xml文件中配置信息的类,可以自己代替或定义
URL confURL = BeansConstants.class.getClassLoader().getResource(filename);
try
{
//将解析器和解析对象myenv.xml联系起来,开始解析
parser.parse(confURL.toString(), handler);
//获取解析成功后的属性 以后 我们其他应用程序只要调用本程序的props就可以提取出属性名称和值了
props = handler.getProps();
}finally{
factory=null;
parser=null;
handler=null;
}
}
}
由于我们的XML文件是使用最简单的形式 ,因此解析器相对简单,但是这已经足够对付我们的配置文件了。

阅读全文

与java提取xml内容相关的资料

热点内容
微软平板开机密码设置 浏览:978
linux删除一行的快捷键 浏览:269
win10改hosts文件 浏览:354
数据博世怎么样 浏览:411
用tar解包没有那个文件或目录 浏览:307
录歌教程 浏览:604
java小数进制转换 浏览:270
80后qq头像女生 浏览:388
word2013页面颜色 浏览:661
linux系统安装显卡驱动 浏览:243
手机安卓培训机构 浏览:819
英语版本的哈面宝宝 浏览:567
手机动态壁纸教学视频教程 浏览:543
网络摄像机sip 浏览:757
湘潭编程学校哪里好 浏览:389
win10设置桌面小图标怎么去掉吗 浏览:122
网络安全创业 浏览:787
修改linux 浏览:464
如何编程计算机cpu高占用程序 浏览:808
程序员活动策划方案 浏览:130

友情链接