第一次来这里:o) ...需要你的帮助,因为这让我发疯这么远...对..
我有这个 xml 结构:
<?xml version="1.0" encoding="UTF-8"?>
<juiceboxgallery galleryTitle="whatever">
<image imageURL="images/23.jpg" thumbURL="thumbs/23.jpg" linkURL="images/23.jpg" linkTarget="_blank" sourcePath="webadded"></image>
<image imageURL="images/24.jpg" thumbURL="thumbs/24.jpg" linkURL="images/24.jpg" linkTarget="_blank" sourcePath="webadded"></image>
... and so on ...
</juiceboxgallery>
我想在列表中的第一个“图像”之前插入新元素...
正确的做法是什么..?
我所有的尝试都是在“juiceboxgallery”之前或结束标签之后插入。没办法把它放在我想要的地方...
尝试使用 getElemtnstByTagName("image")->item(0) 获取第一个图像元素并执行 insertBefore($new_donde,$first_node) 会引发未找到错误!使用此代码...
$nodo_zero=$doc->getElementsByTagName('image')->item(0);
$doc->insertBefore($nuevo_nodo,$nodo_zero);
..即使在检查我是否有“X”图像元素时:
$images=$doc->getElementsByTagName("image");
echo "<hr>imagenes: ".$images->length."<hr>";
..请帮忙:|
最佳答案
必须在父节点上调用 insertBefore() 和appendChild() 等方法。文档本身也是一个节点。所以它有方法并允许添加多个节点,但只能添加单个元素节点。
对于您的情况,以下是可能的方法。
使用DOMNode::parentNode
属性
$nodo_zero = $doc->getElementsByTagName('image')->item(0);
$nodo_zero->parentNode->insertBefore($nuevo_nodo,$nodo_zero);
或者获取 juiceboxgallery
节点并使用 DOMNode::firstChild
属性。
$gallery = $doc->getElementsByTagName('juiceboxgallery')->item(0);
$gallery->insertBefore($nuevo_nodo, $gallery->firstChild);
关于php - 在 xml 之前插入 php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36059975/