请问如何择选xml文件中的部分节点,重新生成一个新的xml文件?

stamp80 2005-04-18 04:50:12
如题所述,我根据一个xml解析出了里面的数据,放置到一个GUI界面里,可以让用户选择自己感兴趣的节点,然后把选择结果存放到一个新生成的xml文件中。两个xml文件结构是相同的,区别在于新的文件中节点个数更少。望达人赐教!谢谢
...全文
149 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Runningboy007 2005-04-26
  • 打赏
  • 举报
回复
不知道这个行不行?
WriterNode(XmlReader reader,bool defattr)方法:

该方法可以从XmlReader读取器中复制节点并把它们写入XmlWriter流中,第一个参数是XmlReader的实例,第二个参数接受一个布尔值,决定是否复制元素中的属性,考虑下面XML片段:

<para>

<sent>

The<b>XmlWriter</b>class writes XML content to a Stream.

</sent>

</para>

以下代码复制其中的片段,reader代表XmlReader的实例writer代表XmlWriter类的实例:

while(reader.Read())

{

if (reader.Name == ”sent” && reader.NodeType == XmlNodeType.Element)

{

writer.WriterNode(reader,true);

}

}

得到以下输出:

<sent>

The<b>XmlWriter</b>class writes XML content to a Stream.

</sent>
jFresH_MaN 2005-04-24
  • 打赏
  • 举报
回复
to 楼上

我说的也只是个大概,不是很具体
同名元素或者节点的问题肯定是要在具体问题中考虑的,呵呵
谢谢指教
usabcd 2005-04-24
  • 打赏
  • 举报
回复
很普通的要求啊,就是选子节点嘛
直接用jdk的API即可
getChildNodes 然后判断getNodeType() == ELEMENT_NODE再加上你自己的过滤条件


jFresH_MaN(TM)说的方法是否有问题,如果子节点中有一样的元素名也选出来了。
xiaohuozhi 2005-04-24
  • 打赏
  • 举报
回复
同意 jFresH_MaN(TM) ,虽然我没有做过xml,但思路都差不多!
jFresH_MaN 2005-04-24
  • 打赏
  • 举报
回复
这个只要是用过dom或者jdom就能做
而且不难

就说jdom吧,可以使用getElemnetByName()得到你需要的Element
然后你你需要的构造的xml的Document里面addContent(Element);直接把刚才那个Element加进去就行了
stamp80 2005-04-24
  • 打赏
  • 举报
回复
我的意思就是把一个个的element分开,当然element里面还允许存在子element。这个element是在我程序里面有意义的一种划分单位。比如说我有一个描述不同公司信息的xml文件,我可以根据用户的意愿把其中的某些公司分离出来,这些公司下面可能还有具体部门的信息,但我不用管他,分离的时候是以公司为单位的,下面的部门信息随着公司节点的析出而析出。有人给个思路吗?
  • 打赏
  • 举报
回复
dom是很简单的东西,你可以用attribute去区分的,这样的话即使是同名也没有什么关系的
  • 打赏
  • 举报
回复
其实对于楼主我有建议可以看看xslt的,这样的话就不需要部分的xml这种思想的

笨狼跟我说过一种xslt很强的方法,就是不断的用import加上when if而去构件

dom也可以不过我觉得楼主这个方法与我构建的系统有点像,并非上策
zzzle 2005-04-18
  • 打赏
  • 举报
回复
不知你的意思,如果是分开的话就比较麻烦了,如果是在一个element下面那就简单多了,找到那个节点,然后add就好

67,513

社区成员

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

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