Java 如何使用DOM在XML中重新定位节点?

Java 如何使用DOM在XML中重新定位节点?,java,xml,dom,Java,Xml,Dom,所以我有一个应该放在xml文件中的电影 DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder docBuilder = docFactory.newDocumentBuilder(); Document doc = docBuilder.parse("D:\\College\\Java Eclipse\\tema5\\Movies\\Movies.xml"

所以我有一个应该放在xml文件中的电影

DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
    DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
    Document doc = docBuilder.parse("D:\\College\\Java Eclipse\\tema5\\Movies\\Movies.xml");


  try {
    Element rootElement = doc.createElement("Movie");
    doc.appendChild(rootElement);

    // firstname elements
    Element id = doc.createElement("Id");
    id.appendChild(doc.createTextNode("3"));
    rootElement.appendChild(id);

    // lastname elements
    Element name = doc.createElement("Name");
    name.appendChild(doc.createTextNode("Movie 3"));
    rootElement.appendChild(name);

    // nickname elements
    Element category = doc.createElement("Category");
    category.appendChild(doc.createTextNode("Animation"));
    rootElement.appendChild(category);

    // salary elements
    Element releasedate = doc.createElement("ReleaseDate");
    releasedate.appendChild(doc.createTextNode("10-Jun-2012"));
    rootElement.appendChild(releasedate);


    Element rating = doc.createElement("Rating");
    rating.appendChild(doc.createTextNode("10"));
    rootElement.appendChild(rating);

    // write the content into xml file
    TransformerFactory transformerFactory = TransformerFactory.newInstance();
    Transformer transformer = transformerFactory.newTransformer();
    DOMSource source = new DOMSource(doc);
    StreamResult result = new StreamResult(new File("D:\\College\\Java Eclipse\\tema5\\Movies\\Movies.xml"));

    // Output to console for testing
    // StreamResult result = new StreamResult(System.out);

    transformer.transform(source, result);



  } catch (TransformerException tfe) {
    tfe.printStackTrace();

  }
问题是,在我的xml文件中,我已经有两部电影,当它尝试播放第三部电影时,它成功了,但在第四部电影时,它就死了。我想这是因为节点,我想知道如何将最后一个重新定位到文件的末尾,以便放置更多的电影。这是第一次插入后的xml文档

<?xml version="1.0" encoding="UTF-8" standalone="no"?><Movie>  
<Movie>
    <Id>1</Id>
        <Name>Movie 1</Name>
    <Category>Action</Category>
    <ReleaseDate>22-JUN-2010</ReleaseDate>
    <Rating>9</Rating>
</Movie>
<Movie>
    <Id>2</Id>
    <Name>Movie 2</Name>
    <Category>Comedy</Category>
    <ReleaseDate>2-JUN-2011</ReleaseDate>
    <Rating>8</Rating>
</Movie>

</Movie>
<Movie>
<Id>3</Id>
<Name>Movie 3</Name>
<Category>Animation</Category>
<ReleaseDate>10-Jun-2012</ReleaseDate>
<Rating>10</Rating>
</Movie>

我建议将rootElement变量重命名为newMovie,因为它的前导错误。xml中只能有一个根元素,可以通过doc.getDocumentElement获得它。如果是您的origina xml格式错误,则dbl关闭电影标签/Movies.xml;行号:17;列数:10;文档中根元素后面的标记必须格式正确。我想一定是这样的。。。
Element docRoot = doc.getDocumentElement();
Element rootElement = doc.createElement("Movie");
docRoot.appendChild(rootElement);