Yii2在视图中呈现响应xml文件

Lac*_*eee 4 xml yii2

有谁知道如何在视图中显示.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的旧版本......

bds*_*bds 9

参考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)

希望这可以帮助!


Fab*_*lli 1

在控制器动作中放置

\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)

就这样!