내 XML 파일이 업데이트되지 않도록하는 것은 무엇입니까?

알렉산더

따라서 어떤 이유로 내 XML 파일이 업데이트되지 않습니다. 같은 것이 다른 곳에서도 작동하기 때문에 모든 것을 올바르게 설정했다고 확신합니다. 노드를 제거한 직후 노드 이름을 출력하는 for 루프를 포함 시켰고 모든 것을 올바르게 출력합니다. 또한 편집하려는 노드에 테스트 노드를 추가하려고 시도했으며 올바르게 인쇄됩니다.

다음은 Java 파일입니다.

package xmlpractice;

import com.sun.org.apache.xml.internal.serialize.OutputFormat;
import com.sun.org.apache.xml.internal.serialize.XMLSerializer;
import java.io.FileOutputStream;
import java.io.IOException;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.xml.sax.SAXException;

public class XMLPractice {
    private DocumentBuilderFactory documentFactory;
    private DocumentBuilder documentBuilder;
    private Document xmlDoc;
    private Node rootNode;
    private static Node calendarDataNode;

    private static int month_index = 1;

    public XMLPractice() {
        try {
            documentFactory = DocumentBuilderFactory.newInstance();
            documentBuilder = documentFactory.newDocumentBuilder();
            xmlDoc = documentBuilder.parse(XMLPractice.class.getResourceAsStream("Calendar.xml"));
            rootNode = xmlDoc.getDocumentElement();
            calendarDataNode = rootNode.getChildNodes().item(1);
        } catch(ParserConfigurationException | SAXException | IOException e) {e.printStackTrace(System.out);}      

        doClick("test");
    }

    public void doClick(String tf_label) {
         for (int y=0; y<calendarDataNode.getChildNodes().getLength(); y++) {
            //if (year node name == "y" + current year)
            if (calendarDataNode.getChildNodes().item(y).getNodeName().equals("y" + 2015)) {
                //for (int m=0; m<number of child nodes in year node; m++)
                for (int m=0; m<calendarDataNode.getChildNodes().item(y).getChildNodes().getLength(); m++) {
                    //if (month node name == "m" + current month)
                    if (calendarDataNode.getChildNodes().item(y).getChildNodes().item(m).getNodeName().equals("m" + (month_index-1))) {
                        //for (int d=0; d<number of child nodes in month node; d++)
                        for (int d=1; d<calendarDataNode.getChildNodes().item(y).getChildNodes().item(m).getChildNodes().getLength(); d+=2) {
                            //if (day node name == "d" + current day)
                            if (calendarDataNode.getChildNodes().item(y).getChildNodes().item(m).getChildNodes().item(d).getNodeName().equals("d" + 1)) {

                                //Added test node to see if it would work correctly. Prints out correctly in for loop, but does the same thing.
                                Element newNode = xmlDoc.createElement("lTest");
                                newNode.setTextContent("testttttt");

                                //Prints correct node I'm trying to edit
                                System.out.println(calendarDataNode.getChildNodes().item(y).getChildNodes().item(m).getChildNodes().item(d).getNodeName());

                                calendarDataNode.getChildNodes().item(y).getChildNodes().item(m).getChildNodes().item(d).appendChild(newNode);

                                //for (int l=0; l<number of child nodes in day node; l++)
                                for (int l=1; l<calendarDataNode.getChildNodes().item(y).getChildNodes().item(m).getChildNodes().item(d).getChildNodes().getLength(); l++) {
                                    //if (label text contents == String label)
                                    if (calendarDataNode.getChildNodes().item(y).getChildNodes().item(m).getChildNodes().item(d).getChildNodes().item(l).getTextContent().equals(tf_label)) {

                                        //Prints name of correct node I'm trying to edit.
                                        System.out.println(calendarDataNode.getChildNodes().item(y).getChildNodes().item(m).getChildNodes().item(d).getChildNodes().item(l).getNodeName() + "\n");
                                        calendarDataNode.getChildNodes().item(y).getChildNodes().item(m).getChildNodes().item(d).removeChild(calendarDataNode.getChildNodes().item(y).getChildNodes().item(m).getChildNodes().item(d).getChildNodes().item(l));

                                        //Printing out node names to see if they were removed.
                                        for (int i=0; i<calendarDataNode.getChildNodes().item(y).getChildNodes().item(m).getChildNodes().item(d).getChildNodes().getLength(); i++) {
                                            System.out.println(calendarDataNode.getChildNodes().item(y).getChildNodes().item(m).getChildNodes().item(d).getChildNodes().item(i).getNodeName());
                                        }
                                    }
                                }
                            }
                        }    
                    }
                }
            }
        }

        OutputFormat outF = new OutputFormat(xmlDoc);

        try (FileOutputStream outStream = new FileOutputStream("Calendar.xml")) {
            XMLSerializer serializer = new XMLSerializer(outStream, outF);
            serializer.serialize(xmlDoc);

            outStream.close();
        }catch(IOException e) {e.printStackTrace(System.out);}
    }

    public static void main(String args[]) {
       new XMLPractice();
    } 
}

다음은 XML 파일입니다.

<root>
    <calendar-data>
        <y2015>
            <m0>
                <d1>
                    <l0>test</l0> //This should be removed
                    <l1>TEST</l1> 
                    //lTest should be added
                </d1>
            </m0>
        </y2015>
    </calendar-data>
</root>

다음은 출력입니다.

d1
l0

test
#text //l0 is missing
#text
l1
#text
lTest //lTest is added
스콧 우드워드

제공 한 코드를 다운로드하고 실행하여 샘플 public static void main (String [] args) 만 추가하여 앱을 실행했습니다. 설명했듯이 소스 XML 파일을 업데이트하지 않았습니다. 교체

FileOutputStream outStream = new FileOutputStream("Calendar.xml")

다음과 같은 절대 경로

C:\\Temp\\Calendar.xml

의도 한대로 작동하여 제공된 절대 경로로 출력되었습니다.

좀 더 조사를 해보니 프로젝트 루트에서 처음 실행 한 결과를 찾았지만 입력은 리소스 폴더에있었습니다. 그로부터 예상했던 곳이 아닌 다른 곳에 파일을 저장하고 있다고 생각합니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

iOS 앱 내에서 XML 파일을 다운로드, 업데이트 및 읽는 방법은 무엇입니까?

분류에서Dev

중단 점이 적용되지 않도록 내 @media 쿼리를 재정의하는 것은 무엇입니까?

분류에서Dev

내 기록이 업데이트되지 않는 이유는 무엇입니까?

분류에서Dev

React에서 업데이트되는 것은 무엇입니까?

분류에서Dev

추가를 수행하고 있는데도 내 목록에 아무것도 추가되지 않는 이유는 무엇입니까?

분류에서Dev

내 / etc / fstab 파일이 구성되지 않은 이유는 무엇입니까?

분류에서Dev

PHP 웹 페이지의 내용을 XML 파일에 저장하는 방법은 무엇입니까?

분류에서Dev

wget이 웹 페이지 내용을 파일에 저장하도록하는 방법은 무엇입니까?

분류에서Dev

내 DataTable이 업데이트되지 않는 이유는 무엇입니까?

분류에서Dev

이 속성 배열이 내보기에 표시되지 않도록하는 방법은 무엇입니까?

분류에서Dev

내 활동이 다시 시작되지 않도록 방지하는 방법은 무엇입니까?

분류에서Dev

내 데이터 세트의 일부는 스파이더로 색상이 지정되고 일부는 그렇지 않은 이유는 무엇입니까?

분류에서Dev

삽입시 CURRENT_TIMESTAMP를 설정하고 업데이트시 아무것도하지 않도록 MySQL 열을 수정하는 방법은 무엇입니까?

분류에서Dev

내 변수가 업데이트되지 않는 이유는 무엇입니까?

분류에서Dev

내 SeekBar가 업데이트되지 않는 이유는 무엇입니까?

분류에서Dev

내 SeekBar가 업데이트되지 않는 이유는 무엇입니까?

분류에서Dev

내 배치 파일 속도가 느려지는 것은 무엇입니까?

분류에서Dev

NewRelic이 내 로컬 컴퓨터에서 실행되지 않도록하는 방법은 무엇입니까?

분류에서Dev

내 PHP 앱이 배포되지 않도록하는 방법은 무엇입니까?

분류에서Dev

내 워드 프레스 웹 사이트가 잘리지 않도록하는 방법은 무엇입니까?

분류에서Dev

Windows 업데이트 : "일부 업데이트 파일이 올바르게 서명되지 않았습니다." 어떤 것을 알아내는 방법?

분류에서Dev

내 PDO 업데이트 쿼리가 하나의 열에 만 정의되지 않은 값을 삽입하는 이유는 무엇입니까?

분류에서Dev

내가 지정하는 것이 아니라 모든 사전 키 값이 업데이트되는 이유는 무엇입니까?

분류에서Dev

PHP를 사용하여 xml 파일을 업데이트하는 방법은 무엇입니까?

분류에서Dev

내 명령이 종료되는 것을 막는 것은 무엇입니까?

분류에서Dev

내 Ubuntu가 내 아이들을위한 포르노 웹 사이트에 연결되지 않도록하는 방법은 무엇입니까?

분류에서Dev

ASP.NET Web API가 내 입력을 기반으로 JSON 또는 XML 데이터를 반환하도록 강제하는 방법은 무엇입니까?

분류에서Dev

이러한 실행 파일이 시작되지 않도록하는 방법은 무엇입니까?

분류에서Dev

내 각도 서비스 값이 내 범위를 업데이트하지 않는 이유는 무엇입니까?

Related 관련 기사

  1. 1

    iOS 앱 내에서 XML 파일을 다운로드, 업데이트 및 읽는 방법은 무엇입니까?

  2. 2

    중단 점이 적용되지 않도록 내 @media 쿼리를 재정의하는 것은 무엇입니까?

  3. 3

    내 기록이 업데이트되지 않는 이유는 무엇입니까?

  4. 4

    React에서 업데이트되는 것은 무엇입니까?

  5. 5

    추가를 수행하고 있는데도 내 목록에 아무것도 추가되지 않는 이유는 무엇입니까?

  6. 6

    내 / etc / fstab 파일이 구성되지 않은 이유는 무엇입니까?

  7. 7

    PHP 웹 페이지의 내용을 XML 파일에 저장하는 방법은 무엇입니까?

  8. 8

    wget이 웹 페이지 내용을 파일에 저장하도록하는 방법은 무엇입니까?

  9. 9

    내 DataTable이 업데이트되지 않는 이유는 무엇입니까?

  10. 10

    이 속성 배열이 내보기에 표시되지 않도록하는 방법은 무엇입니까?

  11. 11

    내 활동이 다시 시작되지 않도록 방지하는 방법은 무엇입니까?

  12. 12

    내 데이터 세트의 일부는 스파이더로 색상이 지정되고 일부는 그렇지 않은 이유는 무엇입니까?

  13. 13

    삽입시 CURRENT_TIMESTAMP를 설정하고 업데이트시 아무것도하지 않도록 MySQL 열을 수정하는 방법은 무엇입니까?

  14. 14

    내 변수가 업데이트되지 않는 이유는 무엇입니까?

  15. 15

    내 SeekBar가 업데이트되지 않는 이유는 무엇입니까?

  16. 16

    내 SeekBar가 업데이트되지 않는 이유는 무엇입니까?

  17. 17

    내 배치 파일 속도가 느려지는 것은 무엇입니까?

  18. 18

    NewRelic이 내 로컬 컴퓨터에서 실행되지 않도록하는 방법은 무엇입니까?

  19. 19

    내 PHP 앱이 배포되지 않도록하는 방법은 무엇입니까?

  20. 20

    내 워드 프레스 웹 사이트가 잘리지 않도록하는 방법은 무엇입니까?

  21. 21

    Windows 업데이트 : "일부 업데이트 파일이 올바르게 서명되지 않았습니다." 어떤 것을 알아내는 방법?

  22. 22

    내 PDO 업데이트 쿼리가 하나의 열에 만 정의되지 않은 값을 삽입하는 이유는 무엇입니까?

  23. 23

    내가 지정하는 것이 아니라 모든 사전 키 값이 업데이트되는 이유는 무엇입니까?

  24. 24

    PHP를 사용하여 xml 파일을 업데이트하는 방법은 무엇입니까?

  25. 25

    내 명령이 종료되는 것을 막는 것은 무엇입니까?

  26. 26

    내 Ubuntu가 내 아이들을위한 포르노 웹 사이트에 연결되지 않도록하는 방법은 무엇입니까?

  27. 27

    ASP.NET Web API가 내 입력을 기반으로 JSON 또는 XML 데이터를 반환하도록 강제하는 방법은 무엇입니까?

  28. 28

    이러한 실행 파일이 시작되지 않도록하는 방법은 무엇입니까?

  29. 29

    내 각도 서비스 값이 내 범위를 업데이트하지 않는 이유는 무엇입니까?

뜨겁다태그

보관