用Java复制某些节点

用Java复制某些节点,java,xml,copy,rft,Java,Xml,Copy,Rft,我试图用JAVA读取/复制xml文档的某个部分,然后将该部分保存为新的xml文档。就像下面的de示例中看到的studentinfo和contact info一样,我只想选择studentinfo并复制整个区域的节点和元素。 我只能找到有关仅选择元素或仅选择节点的信息 谢谢你的帮助 <header> <body> <studentinfo> <name>Student Name<name> <

我试图用JAVA读取/复制xml文档的某个部分,然后将该部分保存为新的xml文档。就像下面的de示例中看到的studentinfo和contact info一样,我只想选择studentinfo并复制整个区域的节点和元素。 我只能找到有关仅选择元素或仅选择节点的信息

谢谢你的帮助

<header>
<body>
    <studentinfo>
        <name>Student Name<name>
        <studentid>0987654321<studentid>
        <Location>USA<Location>
    <studentinfo>
    <contactinfo>
        <email>email@email.com<email>
        <address>somewhere 1<address>
        <postalcode>123456<postalcode>
    <contactinfo>
<body>
<header>

学名
0987654321
美国
email@email.com
某处1
123456

我将做一个很大的假设,即您使用的是
org.w3c.dom.Document
api

这是一个分为两步的过程:

Document doc = parse(xmlSource);

Document targetDoc = openTargetDoc();
Node copyTo = findWhereYouWantToCopyStuffTo(targetDoc);

// Find the node or nodes to want to copy.. could use XPath or some other search
NodeList studentinfoList = doc.getElementsByTagName("studentinfo");

// for each found... make a copy (via importNode) and attach to some point in the target doc
for( int i = 0; i < studnetinfoList.getLength(); i ++ ){
    Node n = studentinfoList.item(i);
    Node copyOfn = targetDoc.importNode(n,true);
    copyTo.appendChild(copyOfn);
}
Document=parse(xmlSource);
Document targetDoc=openTargetDoc();
节点copyTo=查找您想要的CopyStuffTo位置(targetDoc);
//查找要复制的一个或多个节点。。可以使用XPath或其他搜索
NodeList studentinfo=doc.getElementsByTagName(“studentinfo”);
//对于每一个发现。。。复制(通过importNode)并附加到目标文档中的某个点
对于(int i=0;i

如果这不是您想要的,您可能需要使用什么api等,添加更多关于您希望复制的内容和复制位置的详细信息。

您使用什么来处理XML(解析器、框架等)?您可以解析XML,也可以使用xptath来获取您感兴趣的部分。Thanx有关信息,这正是我需要的“FindWhere youwanttoCopyStuff to”方法?如果您没有更具体地说明要将哪些节点复制到何处,则无法回答:)…我假设您正在将节点复制到另一个文档中..因此FindWhere youwanttoCopyStuff to()应该在目标文档中找到位置并返回。注意,上面的内容也可用于复制同一文档中的节点。