我有一个类似于以下示例的 XML:
<article>
<body>
<title>I <underline><bold>LOVE</bold></underline> Coding</title>
</body>
</article>
我想获取节点title的全文。
$xml=simplexml_load_file("file.xml");
$title=$xml->xpath('//title')??[];
echo (string)$title;
我似乎无法更深入地了解带下划线/粗体的 XML 部分。
我希望结果是一个字符串
I LOVE Coding
。
我怎样才能实现这个目标?我只得到
I Coding
。
我也尝试过
xpath('string(//title)')
但得到了空结果。
您需要剥离
<title>
内部的标签,如下所示:
$xmlFile = simplexml_load_file('file.xml');
$title = strip_tags($xmlFile->body->title->asXML());
echo $title;
或者如果您的 XML 不是文件而是字符串:
$xmlString = '<article>
<body>
<title>I <underline><bold>LOVE</bold></underline> Coding</title>
</body>
</article>';
$xml = simplexml_load_string($xmlString);
$title = strip_tags($xml->body->title->asXML());
echo $title;
dom_import_simplexml()
检索 DOM 元素,然后使用 textContent
属性:
$xml = <<<XML
<article>
<body>
<title>I <underline><bold>LOVE</bold></underline> Coding</title>
</body>
</article>
XML;
$doc = simplexml_load_string($xml);
$title = $doc->xpath('//title')[0];
$dom = dom_import_simplexml($title);
echo $dom->textContent;
结果:
I LOVE Coding