社区
XML/XSL
帖子详情
求助:怎样把一个已生成的org.w3c.dom.document写入XML文件中??
purecat
2003-01-16 12:02:42
我用xml4j.jar中的org.w3c.dom.document生成了一个document在内存中,有比较通用的方法把一次性写入到新的XML文件中么(或者说是跟据这个document生成一个XML文件)?如果有好的解决办法,给高分,不够我开贴再加,在线等待
...全文
436
4
打赏
收藏
求助:怎样把一个已生成的org.w3c.dom.document写入XML文件中??
我用xml4j.jar中的org.w3c.dom.document生成了一个document在内存中,有比较通用的方法把一次性写入到新的XML文件中么(或者说是跟据这个document生成一个XML文件)?如果有好的解决办法,给高分,不够我开贴再加,在线等待
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
purecat
2003-01-16
打赏
举报
回复
谢谢,结帐
purecat
2003-01-16
打赏
举报
回复
不是啊,我不要细节实现,我的需求是,提供一个docment和一个文件名就能输出到文件,是一个通用的方法,你给的这个我早看过了,不行的
椅子
2003-01-16
打赏
举报
回复
得,我给你个完全的吧
操作xml包括读取,添加,删除,修改节点
上个文档只提供了xml的读取,添加功能,这里给出全面的解决方案
import javax.xml.transform.dom.*;
import javax.xml.parsers.*;
import org.xml.sax.*;
import org.xml.sax.helpers.*;
import org.w3c.dom.*;
import javax.xml.transform.*;
import javax.xml.transform.stream.StreamResult ;
import javax.xml.transform.stream.StreamSource ;
import javax.xml.transform.dom.*;
import java.util.*;
import java.io.*;
public class DomReadDR{
DocumentBuilderFactory factory;
DocumentBuilder builder;
Document doc;
public DomReadDR()throws Exception{
factory=DocumentBuilderFactory.newInstance();
builder = factory.newDocumentBuilder();
doc = builder.parse("test.xml");
}
public void Read() throws Exception{
doc.normalize();
NodeList links=doc.getElementsByTagName("song");
for(int i=0;i<links.getLength();i++){
Element link = (Element)links.item(i);
System.out.println(link.getElementsByTagName("name").item(0).
getFirstChild().getNodeValue());
System.out.println(link.getElementsByTagName("music-by").item(0).
getFirstChild().getNodeValue());
}
}
//替换节点
public int replaceNode(String nodeID,String nodeValue){
doc.normalize();
NodeList links=doc.getElementsByTagName("song");
//查找要替换的Node
boolean blfindNode=false;
Element link=null;
for(int i=0;i<links.getLength();i++){
link = (Element)links.item(i);
if((link.getElementsByTagName("mId").item(0).getFirstChild().getNodeValue()).trim().equals(nodeID)){
blfindNode=true;
link.getElementsByTagName("music-by").item(0).getFirstChild().setNodeValue(nodeValue);//替换node的内容
break;
}
}
if (!blfindNode)
{
return 1;//没有找到合适的节点
}
try{
TransformerFactory tFactory=TransformerFactory.newInstance();
Transformer transformer=tFactory.newTransformer();
//设置输出的encoding为改变gb2312
transformer.setOutputProperty("encoding","gb2312");
DOMSource source= new DOMSource(doc);
StreamResult result = new StreamResult("test.xml");
transformer.transform(source,result);
}catch(javax.xml.transform.TransformerConfigurationException e){
e.printStackTrace();
System.out.println(e.getMessage());
return 3;//写文件错误
}catch(javax.xml.transform.TransformerException ex){
ex.printStackTrace();
return 3;
}
return 0;//替换成功
}
//删除节点
public int deleteNode(String nodeID){
doc.normalize();
NodeList links=doc.getElementsByTagName("song");
//查找要替换的Node
boolean blfindNode=false;
Element link=null;
for(int i=0;i<links.getLength();i++){
link = (Element)links.item(i);
if((link.getElementsByTagName("mId").item(0).getFirstChild().getNodeValue()).trim().equals(nodeID)){
blfindNode=true;
try{
link.getParentNode().removeChild(link);
}catch(DOMException e){
e.printStackTrace();
return 2;//Dom错误
}
break;
}
}
if (!blfindNode)
{
return 1;//没有找到合适的节点
}
try{
TransformerFactory tFactory=TransformerFactory.newInstance();
Transformer transformer=tFactory.newTransformer();
//设置输出的encoding为改变gb2312
transformer.setOutputProperty("encoding","gb2312");
DOMSource source= new DOMSource(doc);
StreamResult result = new StreamResult("test.xml");
transformer.transform(source,result);
}catch(javax.xml.transform.TransformerConfigurationException e){
e.printStackTrace();
System.out.println(e.getMessage());
return 3;//写文件错误
}catch(javax.xml.transform.TransformerException ex){
ex.printStackTrace();
return 3;
}
return 0;//替换成功
}
//添加节点
public void addNode(String mId,String name,String musicby){
Text textseg;
Element link = doc.createElement("song");
Element emId = doc.createElement("mId");
textseg=doc.createTextNode(mId);
emId.appendChild(textseg);
link.appendChild(emId);
Element ename = doc.createElement("name");
textseg=doc.createTextNode(name);
ename.appendChild(textseg);
link.appendChild(ename);
Element emusicby = doc.createElement("music-by");
textseg = doc.createTextNode(musicby);
emusicby.appendChild(textseg);
link.appendChild(emusicby);
Element root = doc.getDocumentElement();
root.normalize();
root.appendChild(link);
System.out.println(doc.getDoctype());
try{
TransformerFactory tFactory=TransformerFactory.newInstance();
Transformer transformer=tFactory.newTransformer();
//设置输出的encoding为改变gb2312
transformer.setOutputProperty("encoding","gb2312");
DOMSource source= new DOMSource(doc);
StreamResult result = new StreamResult("test.xml");
transformer.transform(source,result);
}catch(javax.xml.transform.TransformerConfigurationException e){
e.printStackTrace();
System.out.println(e.getMessage());
}catch(javax.xml.transform.TransformerException ex){
ex.printStackTrace();
}
}
public static void main(String[] args){
try{
DomReadDR dr = new DomReadDR();
dr.Read();
//dr.addNode("5","卡本特1","yestodayfdgdrtyrtyrtyrtyfgdfgdfgdfg once more");
System.out.println(dr.replaceNode("4","天上人间第死的克己复礼亏损大家法律亏损代理费"));
System.out.println(dr.deleteNode("1"));
}catch(Exception e){
System.out.println(e.getMessage());
}
}
}
椅子
2003-01-16
打赏
举报
回复
TransformerFactory tFactory=TransformerFactory.newInstance();
Transformer transformer=tFactory.newTransformer();
//设置输出的encoding为改变gb2312
transformer.setOutputProperty("encoding","gb2312");
DOMSource source= new DOMSource(doc);
StreamResult result = new StreamResult("test.xml");
transformer.transform(source,result);
}catch(javax.xml.transform.TransformerConfigurationException e){
e.printStackTrace();
System.out.println(e.getMessage());
return 3;//写文件错误
实验-三、数据库安全性(目的、要求和模板).doc
实验-三、数据库安全性(目的、要求和模板).doc
基于Docker搭建K8s集群离线包
基于Docker搭建K8s集群离线包,包含部署时所需的全部文件,可在内网环境
中
使用,K8s为1.23.0版本,docker为20.10.9-3版本
基于springboot+vue实现的求职招聘类型网站源代码+数据库(优质毕设项目).zip
基于springboot+vue实现的求职招聘类型网站源代码+数据库(优质毕设项目).zip个人经导师指导并认可通过的98分毕业设计项目,主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者。也可作为课程设计、期末大作业。包含全部项目源码、该项目可以直接作为毕设使用。项目都经过严格调试,确保可以运行! 基于springboot+vue实现的求职招聘类型网站源代码+数据库(优质毕设项目).zip个人经导师指导并认可通过的98分毕业设计项目,主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者。也可作为课程设计、期末大作业。包含全部项目源码、该项目可以直接作为毕设使用。项目都经过严格调试,确保可以运行! 基于springboot+vue实现的求职招聘类型网站源代码+数据库(优质毕设项目).zip个人经导师指导并认可通过的98分毕业设计项目,主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者。也可作为课程设计、期末大作业。包含全部项目源码、该项目可以直接作为毕设使用。项目都经过严格调试,确保可以运行!基于springboot+vue实现的求
基于Android系统Api封装常用工具类.zip
基于Android系统Api封装常用工具类.zip
基于PCA和SVM的人脸识别
svm 基于PCA(主成分分析)和SVM(支持向量机)的人脸识别是一种常见的方法。这里是
一个
简要说明: PCA(主成分分析): PCA是一种降维技术,它通过线性变换将高维数据转换为低维数据,同时保留最大的数据方差。 在人脸识别
中
,PCA被用来提取人脸图像
中
的主要特征,从而减少数据的维度,并保留最重要的信息。 SVM(支持向量机): SVM是一种监督学习算法,用于分类和回归分析。 在人脸识别
中
,SVM被用来构建
一个
分类器,以将提取的人脸特征映射到相应的人脸身份标签。 基于PCA和SVM的人脸识别流程: 训练阶段: 收集训练数据集,包括多个人的人脸图像和相应的标签。 对每个人脸图像应用PCA,将其转换为低维特征向量。 使用这些特征向量训练
一个
SVM分类器,使其能够将人脸特征向量与相应的人脸标签关联起来。 测试阶段: 对待识别的人脸图像应用相同的PCA转换,将其转换为与训练数据相同的低维特征向量。 使用训练好的SVM分类器,将待识别的人脸特征向量与已知的人脸标签进行比较,从而确定其身份。 优点: PCA可以有效地降低数据的维度,减少计算复杂度,并提取最相关的特征。 SVM在处理
XML/XSL
8,906
社区成员
22,678
社区内容
发帖
与我相关
我的任务
XML/XSL
XML/XSL相关问题讨论专区
复制链接
扫一扫
分享
社区描述
XML/XSL相关问题讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章