有谁知道如何在视图中显示.xml响应文件?将xml渲染为html?
A找到了这样的东西:
http://code.google.com/p/yii/source/browse/trunk/framework/web/widgets/CTextHighlighter.php
Run Code Online (Sandbox Code Playgroud)
我不确定它是否可以帮助我,因为它是Yii的旧版本......
参考Fabrizio的解决方案,这将允许您通过.css编辑样式:
在视图中加载并输出xml:
/views/site/xml.php
<?php echo file_get_contents(Yii::getAlias('@app/web/').'doc.xml');
Run Code Online (Sandbox Code Playgroud)
如您所见,我将XML文档放入web文件夹中,您可以根据需要进行调整.
在控制器中,创建显示视图的操作:
public function actionXml() {
Yii::$app->response->format = \yii\web\Response::FORMAT_RAW;
Yii::$app->response->headers->add('Content-Type', 'text/xml');
return $this->renderPartial('xml');
}
Run Code Online (Sandbox Code Playgroud)
请注意,Fabrizio解决方案中提到FORMAT_XML的\yii\web\Response类的方法将XML包装在<response>...</response>标签中,并将您的实际数据包含在文本中<span>...</span>.
相反,请确保您在XML标记中引用了样式表:
<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet type="text/css" href="/css/doc.css"?>
Run Code Online (Sandbox Code Playgroud)
再次,随意.css根据您的需要调整位置.
在您的.css文件中,只需像使用HTML标记一样引用您的XML实体:
RootEntity {
display: block;
}
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助!
在控制器动作中放置
\Yii::$app->response->format = \yii\web\Response::FORMAT_XML
Run Code Online (Sandbox Code Playgroud)
renderPartial()请记住使用相反 来渲染视图render(),这样布局将不会被应用。
最后在视图中放入xml代码。
例如:
控制器:
public function actionTest()
{
\Yii::$app->response->format = \yii\web\Response::FORMAT_XML;
return $this->renderPartial('test');
}
Run Code Online (Sandbox Code Playgroud)
看法:
<Tests>
<Test TestId="0001" TestType="CMD">
<Name>Convert number to string</Name>
<CommandLine>Examp1.EXE</CommandLine>
<Input>1</Input>
<Output>One</Output>
</Test>
</Tests>
Run Code Online (Sandbox Code Playgroud)
就这样!