如何在Laravel Blade模板中正确显示XML元素内容?
解决SimpleXMLElement在Blade中无法显示为标准XML标签的问题
核心解决方法
直接利用SimpleXMLElement自带的asXML()方法,结合Blade的未转义输出语法:
{!! $exampleElement->asXML() !!}
这样就能直接输出<categoryId>2411</categoryId>这类标准XML标签格式。
补充说明
为什么
{{ $exampleElement }}无输出?
Blade的{{ }}会自动转义内容,且SimpleXMLElement对象被直接echo时,仅会输出元素的纯文本内容;如果元素无直接文本或解析场景特殊,就会出现无输出的情况。而dd()能看到对象结构是因为它打印的是对象的完整属性信息,而非输出其字符串形式。手动构建XML标签(可选)
如果需要自定义输出格式,也可以通过获取元素名和文本内容手动拼接:
{!! "<{$exampleElement->getName()}>{$exampleElement}</{$exampleElement->getName()}>" !!}
内容的提问来源于stack exchange,提问作者Rediska
相关产品推荐
相关产品推荐

