何らかの理由でPHPを使用してXMLファイルから特定のノードを削除しようとしていますが、これはおそらくケースであると結論づけましたこれは、PHPが正しいXMLファイル数のノードを返さないためです。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ファイルから情報を取得しようとしましたが、<newFile>
(削除したいノードです)のノードでPHPが見つけることができました。 があることを行うために、私は次のことをやった:
<?php
$doc = new DOMDocument();
$doc->load("FilenameList.xml");
$root = $doc->documentElement;
$newFiles = $root->getElementsByTagName("newFile");
echo count($newFiles);
?>
しかし、明らかに、道より多くのノードが存在するにもかかわらず、「1」が返されます。 私はまた、<newFile>
ノードの量をsimpleXMLを使って数えてみましたが、やはり動作しませんでした。私はこれで非常に混乱しています。私は過去に同じ構文を使用していたので、完璧に機能しました。 私が試したもう一つは、これを実行することでした。また
$newFiles = $doc->getElementsByTagName("newFile");
代わりの$root = ...
、私はまたsizeof()
代わりのcount()
を使用してみました。 何か不足していますか?誰かが間違っていることについて考えていますか?
これは 'echo $ newFiles-> length'、' count() 'のような' - > length'属性を使って、適切な関数ではありません – Ghost
ah愚かな間違い、実際にはより大きな間違いがあることを期待していたので、なぜ削除がうまくいかなかったのか分かりました。どうもありがとうございました ! –