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它的query函数:

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

当它返回 aDOMNodeList时,如果成功,您需要选择第一个。如果$node仍然评估false做错误处理。

另一件事是使用 ID,但看起来您没有任何 ID。

于 2012-09-28T11:36:40.913 回答
1

要使用 XPath 选择单个节点,请使用DOMXPath

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