PHP를 사용하여 XML 파일에서 특정 노드를 삭제하려고하고 있는데, 어떤 이유로 제대로 작동하지 않았기 때문에 결론에 도달했습니다. 왜냐하면 PHP는 정확한 XML 파일 수를 반환하지 않기 때문입니다. PHP가 XML 파일의 올바른 노드 수를 반환하지 않습니다.
이
은 XML 파일입니다 :<?xml version="1.0"?>
<Filenames>
<newFile>
<link>somelink</link>
<ViewLink>someotherlink</ViewLink>
<FileName>test</FileName>
</newFile>
<newFile>
<link>somelink</link>
<ViewLink>someotherlink</ViewLink>
<FileName>test</FileName>
</newFile>
</Filenames>
... 등등 (파일이 방법은 이상하지만, 난 항상 등 노드에 대해 동일한 이름을 사용하고, 당신은 요점을 파악)
특정 노드를 삭제해도 문제가 해결되지 않았기 때문에 xml 파일에서 정보를 얻으려고했는데 PHP가 찾을 수있는 노드 수인 <newFile>
(삭제하려는 노드)을 확인하려고했습니다. 비록, 분명히, 방법 이상의 노드가 "1"을 반환하는, 그러나
<?php
$doc = new DOMDocument();
$doc->load("FilenameList.xml");
$root = $doc->documentElement;
$newFiles = $root->getElementsByTagName("newFile");
echo count($newFiles);
?>
: 그렇게하기 위해, 나는 다음을했다. 또한 simpleXML을 사용하여 <newFile>
노드의 양을 계산했지만 다시 작동하지 않았습니다. 나는 이것으로 매우 혼란 스럽다. 과거에 같은 문법을 사용했기 때문에 완벽하게 해결되었다. 해봤 또 다른 한가지는이 작업을 수행하는 것이 었습니다 : 또한
$newFiles = $doc->getElementsByTagName("newFile");
대신 $root = ...
, 나는 또한 sizeof()
대신 count()
를 사용했습니다. 내가 누락되었거나 잘못 된 것에 대해 누구나 생각을 갖고 있습니까?
발견 된 노드의 수를 세는 것은'echo $ newFiles-> length','count()'함수와 같은'-> length' 속성을 사용하여 – Ghost
ah를 사용하는 적절한 함수가 아닙니다. 어리석은 실수, 나는 실제로 더 큰 실수가 있었으면 좋겠다. 그래서 삭제가 왜 효과가 없었는지 알았다. 고마워요! –