为什么我修改的xml里面有黑色方块?

java小刺 2014-02-24 01:25:20
如题。求解决。

public static void update() {
String oldStr = "d:/a.xml";
String newStr = "d:/b.xml";
Document document = null;
try {
SAXReader saxReader = new SAXReader(); // 用来读取xml文档
document = saxReader.read(new File(oldStr)); // 读取xml文档
List list = document.selectNodes("list/name");// 用xpath查找节点book的内容
Iterator iter = list.iterator();
while (iter.hasNext()) {
Element element = (Element) iter.next();
element.setText("张三");// 设置相应的内容
}
} catch (Exception e) {
e.printStackTrace();
}
try {
OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding("utf-8");
XMLWriter writer = new XMLWriter(new FileWriter(new File(newStr)),format);
writer.write(document);
writer.close();
} catch (Exception ex) {
ex.printStackTrace();
}
}
...全文
243 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
是节点错位吗
java小刺 2014-02-24
  • 打赏
  • 举报
回复
引用 5 楼 zhujunjun6 的回复:
试试从根节点开始读取 Document document = saxReader.read(new File(path)); // 根节点 Element root = document.getRootElement(); // 遍历根结点(paths)的所有孩子节点(肯定是path节点) for (Iterator iter = root.elementIterator(); iter.hasNext();) { Element element = (Element) iter.next(); String name = ""; String path_ = ""; // 遍历path结点的所有孩子节点(即name,path,folder),并进行处理 for (Iterator iterInner = element.elementIterator(); iterInner .hasNext();) { Element elementInner = (Element) iterInner.next(); if (elementInner.getName().equals("name")) { name = elementInner.getText(); } if (elementInner.getName().equals("path")) { path_ = elementInner.getText(); } map.put(name,path_); } } 然后取的name和path的值自己修改
我现在就想修改xml节点的值,并且返回一个改好的xml,格式不能变、现在就是格式变了、
  • 打赏
  • 举报
回复
试试从根节点开始读取 Document document = saxReader.read(new File(path)); // 根节点 Element root = document.getRootElement(); // 遍历根结点(paths)的所有孩子节点(肯定是path节点) for (Iterator iter = root.elementIterator(); iter.hasNext();) { Element element = (Element) iter.next(); String name = ""; String path_ = ""; // 遍历path结点的所有孩子节点(即name,path,folder),并进行处理 for (Iterator iterInner = element.elementIterator(); iterInner .hasNext();) { Element elementInner = (Element) iterInner.next(); if (elementInner.getName().equals("name")) { name = elementInner.getText(); } if (elementInner.getName().equals("path")) { path_ = elementInner.getText(); } map.put(name,path_); } } 然后取的name和path的值自己修改
java小刺 2014-02-24
  • 打赏
  • 举报
回复
引用 2 楼 jackpay 的回复:
应该是换行符号,没影响的,用有格式的编辑器打开就没了
无法显示 XML 页
java小刺 2014-02-24
  • 打赏
  • 举报
回复
引用 2 楼 jackpay 的回复:
应该是换行符号,没影响的,用有格式的编辑器打开就没了
可以用网页打开,说格式错误呀
jackpay 2014-02-24
  • 打赏
  • 举报
回复
应该是换行符号,没影响的,用有格式的编辑器打开就没了
java小刺 2014-02-24
  • 打赏
  • 举报
回复
这样修改了原来xml节点的值,可是为什么生成的xml格式就错误了?
Yale free 雅乐简谱打谱软件这是免费的 开发 张晓 http://www.yalesoft.com/ 雅乐简谱对硬件有什么要求? 推荐使用CPU:PIII800以上, 内存:256M以上 雅乐简谱能在哪些操作系统下运行? Windows 2000/NT/XP/Vista 什么是机器码? 雅乐简谱会根据用户的计算机软硬件信息生成唯一的识别码,一般称作机器码。 如何购买雅乐简谱? 请参考网站首页的购买项 多台计算机可以共用一个注册号吗? 不行,因为注册号是根据用户购买时提供的的计算机硬件信息生成的,所以只能在提供硬件信息的那台计算机上运行。 试用版与正式版有什么区别? 试用版限制了打印和存档功能,其它一样 雅乐简谱有免费升级的售后服务吗? 有,您可以在购买后的一年内免费升级,升级到后续其它版本有一定的优惠 雅乐简谱的特点: 1、高度的智能化:程序有非常智能的自动化排版系统,有音符自动定位,小节宽度自动适应,歌词自动对齐,符号自动避让,版面调整后自动重排等功能。 2、完全自由的排版:当程序提供的自动排版不能满足用户的需求时,用户可以通过键盘与鼠标非常容易的自由调整谱面元素位置。自由改变音符位置,改变音符间距、改变行间距等。 3、所见即所得 雅乐在开发过程中,非常强调软件的易用性,在技术条件许可的情况下,力争做到完全的所见即所得,因此用户对乐谱的每一个改变都能实时的在界面反映出来。同时软件也非常容易上手,在不看说明书的情况下就能学会使用大部分功能。 雅乐简谱的主要功能: v2.4 1、添加了全键盘音符输入 2、添加了设置行内所有小节等宽的功能 3、修正了一些其它的bug v2.3 1、添加了任意断开、连接减时线的功能 2、修改了排版算法,减少了歌词重叠的几率 v2.2 1、修正了文件存储的一些bug 2、修正了其它的bug v2.1 1、增加了不完全小节的功能 2、修正了v2.0中倚音的bug v2.0 1、增加了多声部的功能 2、增加了改变音符字体的功能 3、增加了将计算机字体映射为符号的功能 4、增加了改变参数的功能 5、增加了最多自定义四个打击乐符号的功能 6、加强了跳房子功能(不在限于1 2) 7、增加了导入导出midi的功能 8、增加了导入musicxml的功能 9、增加了升降八度的功能 10、增加了显示/隐藏界面元素的功能 11、增加了移调的功能 12、其它的一些改进 v1.1 添加了任意文字的功能 v1.03 1、修正了删除小节会意外退出程序的bug 2、修正了在繁体操作系统下显示乐器名乱码的bug 3、修正了音符移动后不能多次Undo的bug 4、取消了导入musicXML 文件的功能 v1.0 1、音符编辑:有普通键盘输入和MIDI键盘输入两种方式。可以很方便的输入普通音符、和音及倚音。 2、歌词编辑:可以非常方便的输入多行歌词,适合歌曲重复段落 3、小节线与反复符号编辑: 4、常用装饰符号编辑: 5、常用装饰线编辑:如平顶连音线、圆滑连音线、颤音、渐强、渐弱、琶音等。 6、常用力度符号编辑: 7、自由排版:如设置行小节数、设置行间距等。 8、其它功能:如播放、改变谱面大小、隐藏空白行等。 雅乐简谱使用手册 一、基本操作 1、定位光标。 在雅乐中,光标定义为蓝色的小竖线,其作用为指示音符输入的位置。 光标可以通过鼠标和 键盘两种方式定位。 鼠标:用鼠标左键单击小节内的位置,则光标会定位到该小节的音符输入位置。 键盘: 按住Shift 键,同时按下键盘的左右箭头,可以向左、右移动光标,每按一次移动一个 音符位置; 注:不按住Shift 键,按下键盘的左右箭头,如果移动到的位置有音符,默认会选中该 音符,同时隐藏光标; 2、选中 鼠标:用鼠标左键单击相应的图元,如音符、文字、歌词、符号等,选中该图元,颜色会 变为红色。 键盘:移动左右箭头,如果光标位置已有音符,则默认会选中该音符,音符变红。 3、移动 首先选中要移动的图元,确认图元变成红色; 鼠标操作:左键按住该图元,将图元拖动到需要的位置,放开鼠标左键。 ③键盘操作:按住Ctrl 键,同时按上下左右箭头。可以向相应方向移动选中的图元。 4、编辑文字 雅乐的很多文字,如歌词、标题、作词、作曲等可以直接编辑, 具体操作为: ①鼠标左键双击需要编辑的文字,该段文字变为可编辑状态(界面上看稍有变化); ②可以对文字进行常规的编辑工作,拷贝、粘贴、删除、添加等; 5、删除 ①选中需要删除的图元,确认图元变红; ②按下键盘的Delete 键。则该图元被删除; ----------------------- 页面 2--

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧