2009-12-06 5 views
0

자바를 사용하여 XML 파일에서 노드를 삭제하려고합니다. 사용 된 브라우저는 Firefox입니다. 나는 successfuly 삭제하려는 노드에 도달, 그럼 시도하고있어 delNode.ParentNode.RemoveChild (delNode) 하지만 내 하드 디스크에 XML 파일로 갔을 때, 노드가 여전히 거기에 있었다. 전체 노드 (어린이뿐만 아니라)를 삭제해야합니다. 누군가 내가 무엇을해야할 지 안내 할 수 있다면, 나는 정말 대단 할 것이다.) 감사합니다.Firefox에서 자바 스크립트를 사용하는 XML 노드 삭제

답변

0

도움 주셔서 감사합니다. 자바 스크립트에서 파일의 내용을 변경하는 방법을 찾을 수 없어서 PHP를 사용했습니다. 내 XML에서 첫 번째 노드를 삭제하려고 시도했습니다 activity1.xml. 응답에 대한)

1

그러면 delNode가 제거되어야합니다. 오류가 있습니까? delNode.parentNode.removeChild (delNode)의 결과는 무엇입니까? 나는 항상 똑같은 일을하며 그것은 나를 위해 일합니다.

죄송합니다. 파일을 다시 작성하는 부분을 놓쳤습니다. 이를 수행하려면 nsiFile을 사용하고 chrome:// url을 사용하십시오. 이러한 것들을 이용하기 위해서는 아마도 여러분의 스크립트 인 chrome.manifest 파일을 가지고있는 'chrome'이라는 디렉토리가있는 디렉토리를 만들어야 할 것입니다.

+0

감사합니다;

$xdoc = new DomDocument; $xdoc->Load('images\activity\activity1.xml'); $xdoc->documentElement->removeChild($xdoc->documentElement->childNodes->item(1)); $xdoc->save('images\activity\activity1.xml'); 

그것은 단순히 가지고 어떤 아이 첫 번째 노드를 삭제 : 여기에 코드입니다. 이 메서드를 구현할 때 delNode.parentNode.removeChild (delNode), 내 코드는이 줄에서 멈추고 나머지 함수는 수행하지 않습니다. 다른 방법을 시도했습니다. y = xmlDoc.getElementsByTagName ("file") [0]; window.alert (y); xmlDoc.documentElement.removeChild (y); 후자의 경우 오류가 발생하지 않았고 모든 코드가 브라우저에 구현되었지만 내 하드 디스크의 xml 파일로 되돌아 갔을 때 노드가 여전히있었습니다. 나는 이것이 처음 시도한 이래로 무엇이 잘못되었는지를 모른다. 좋은 아이디어! 감사합니다. – Beso

+3

Erm. DOM을 변경하면 메모리에로드 된 복사본 만 변경되고로드 한 파일에는 다시 쓰지 않습니다. 디스크 복사본을 대체하기 위해 DOM을 다시 XML 파일로 serialize해야합니다. 브라우저 크롬이 아닌 웹 페이지에 있다면 로컬 파일 시스템에 전혀 액세스 할 수 없습니다. – bobince

+0

오, 나는 그것을 파일로 다시 쓰는 것에 대해 그 전체 부분을 놓쳤다. 즉, 파일을 디스크에 쓰려면 chrome : // url 및 nsiFile 클래스를 사용해야합니다. –

관련 문제