0

XMLファイルをトラバースし、特定の属性とノード値をHTMLフォームで表示しています。フォームを送信した後、フォームフィールドの値をXMLファイルに直接挿入したいと思います。

基本的に、私は特定のノードと属性のための「オンラインxmlエディター」を構築しています。

DOMDocumentを使用してXMLをロードしていますが、変更したいすべての属性とノード値が見つかりました。ここで必要なのは、編集したノードごとに一意の識別子を保存して、投稿後にフォームフィールドをXMLに保存できるようにすることです。

XPATHを次のような配列に格納できます

array_push($edited_images, $image->getNodePath());

...しかし、次のページでこれらのノードにアクセスする方法がわかりません。これを行うには、ある種の方法が必要です。

$doc = new DOMDocument();
...
$node_to_edit = $doc->selectOneNodeBySpecificXPATH($edited_images[0]);
$node_to_edit->->setAttribute($a, 'FORM FIELD CONTENT FROM PAGE');

ただし、XPATHを使用して単一のノードを選択するのに役立つ方法が見つかりません。DOMDocumentのノードに適した一意の識別子はありますか?または私が必要とするもののためのより良い一般的なアプローチ?

アイデアをありがとう。

4

2 に答える 2

1

XPathを使用して単一のノードを選択するには、次を使用しDOMXPathます。

$xpath = new DOMXpath($doc);
$node = $xpath->query($edited_images[0])->item(0);
于 2012-09-28T11:34:09.743 に答える
1

保存されたXPathを使用して単一のノードを選択するには、DOMXPathとそのquery機能を使用します。

$xpath = new DOMXpath($doc);
$node = $xpath->query($edited_images[0]);
$node && $node = $node->item(0);

を返すのでDOMNodeList、成功した場合は最初のものを選択する必要があります。$nodeそれでも評価する場合falseは、エラー処理を行います。

もう1つはIDを使用することですが、IDがないようです。

于 2012-09-28T11:36:40.913 に答える