我paragraph
在 XML 中有很多很多元素,在这些段落中通常有子元素,例如name
. 我想运行一个 xpath,它将返回子元素的值和xml:id
父段落的值。理想的结果是某种数组,其中键是paragraph
元素xml:id
,值是子name
元素的文本节点。有什么想法可以通过单个 xpath 完成吗?
目前,我正在尝试涉及两个 xpath 并尝试将两者放在一起的类似操作,但这变得非常混乱并且无法正常工作。
$result_array = array();
$xmldoc = simplexml_load_file("$fullfilename");
$xmldoc->registerXPathNamespace("tei", "http://www.tei-c.org/ns/1.0");
$names = $xmldoc->xpath("//name");
foreach ($names as $name)
{
$pids = $xmldoc->xpath("//tei:p[tei:name='$name']/@xml:id")
$result_array[$name] = $pids[0]
}
我在这里收到一个错误,说[$name]
是非法偏移。我也只是不认为这会给出我想要的,因为我相信它总是会返回具有与输入匹配的子元素的xml:id
第一段。name
但我想要的是段落 xml:id 找到该实例的段落的值。
谢谢你的帮助。