我想要一个现有元素并将一个孩子放在其中。但我希望预先存在的元素的内容也包含在新元素中。
所以我有<span class="folnum">Content</span>
,我希望最终得到<span class="folnum"><a href="link">content</a></span>
,我希望我能用php的simpleXML解析器做到这一点。
这是我到目前为止所得到的:
$folnum = $xmldoc->xpath("//span[@class='folnum']");
foreach ($folnum as $indivfolnum)
{
$child = $indivfolnum->addChild("a", "wholemsImage");
$child->addAttribute("href", (string) $indivfolnum);
}
我从中得到的是<span class="folnum">Content<a href="link">wholemsImage</a></span>
。
显然addChild()
方法也在添加新内容,这实际上并不是我想要的。我希望它替换文本内容。
答案 0 :(得分:2)
我认为这应该有效:
Content
保存到新变量:$link = (string) $indivfolnum;
<span>
元素:$indivfolnum[0] = "";
代码示例:
$folnum = $xmldoc->xpath("//span[@class='folnum']");
foreach ($folnum as $indivfolnum)
{
$link = (string) $indivfolnum;
$indivfolnum[0] = "";
$child = $indivfolnum->addChild("a", "wholemsImage");
$child->addAttribute("href", $link);
}
它可以根据需要创建输出:
<span class="folnum"><a href="Content">wholemsImage</a></span>