PHP에서 xml을 처리하는 방법은 실제 개발에서는 덜 사용되지만, 사용하게 되면 필연적으로 사용하게 되는데, 정리하자면 여전히 조금 번거롭습니다.
yii2에서 xml이 어떻게 처리되는지 살펴보겠습니다. 생각보다 쉬울 것입니다.
XML 형식으로 데이터를 출력하는 경우를 예로 들어보겠습니다.
출력이기 때문에 웹 요청과 응답이 반드시 포함되어야 합니다. 익숙하지 않다면 먼저 HTTP 프로토콜을 이해하면 됩니다.
yii2는 다음 반환 형식을 지원하며 모두 사용자 정의할 수 있습니다.
XML: YIIIWEBXMLRESPONSEFORMATER에 의해 구현됨.
JSONP: YiiwebjsonResponseFormatter에 의해 구현됨
raw: 적용하지 않고 직접 응답을 보내려면 이 형식을 사용하세요. 어떤 형식이든 가능합니다.
우리는 XML을 위해 왔습니다.
먼저 간단한 출력 xml 형식 데이터를 살펴보겠습니다
public function actionTest () { \Yii::$app->response->format = \yii\web\Response::FORMAT_XML; return [ 'message' => 'hello world', 'code' => 100, ]; }여기서 응답 형식 FORMAT_XML을 지정하고 다음으로 액세스합니다. 테스트 방법을 보면
<response> <message>hello world</message> <code>100</code> </response>페이지에 xml 형태의 데이터가 출력되는 것을 볼 수 있다. 위에서 언급한 방법은 조금 번거롭기는 하지만, 실행하면 별 문제가 되지 않는다. 여러 항목을 구성하는 것이 편리하므로 직접 응답 개체를 만들어 보겠습니다
public function actionTest () { return \Yii::createObject([ 'class' => 'yii\web\Response', 'format' => \yii\web\Response::FORMAT_XML, 'formatters' => [ \yii\web\Response::FORMAT_XML => [ 'class' => 'yii\web\XmlResponseFormatter', 'rootTag' => 'urlset', //根节点 'itemTag' => 'url', //单元 ], ], 'data' => [ //要输出的数据 [ 'loc' => 'http://********', ], ], ]); }다음 설명을 쉽게 하기 위해 위 구성을 함께 수행했습니다. 구성을 참조하세요. 응답 형식을 결정하기 위해 루트 노드 rootTag, 단위 itemTag 및 데이터 유형 구성을 포함하여 일부 구성이 별도로 이루어졌습니다. 일부 학생들은 여기서 우리가 실제로 매우 간단하게 xml 형식의 사이트 맵 출력을 구현했다는 것을 알아차렸습니다. 예, 아주 간단합니다.
위 내용은 관련 내용을 포함하여 Yii2가 xml 형식의 데이터를 출력하는 방법을 소개한 내용이 PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.