web-dev-qa-db-ja.com

Angular2TypeScript-きれいなXMLを出力します

サーバーから取得した次のXML文字列があります。

<find-item-command xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" find-method="Criteria" item-class="com" only-id="false" xsi:schemaLocation=""> <criteria> <criterion> <descriptors> <descriptor>DPSystemEventItem</descriptor> </descriptors> <value>cluster.manager.active</value> </criterion> </criteria> </find-item-command>

しかし、私は私のモジュールでそれを美化したいです:

<find-item-command
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" find-method="Criteria" item-class="com" only-id="false" xsi:schemaLocation="">
    <criteria>
        <criterion>
            <descriptors>
                <descriptor>DPSystemEventItem</descriptor>
            </descriptors>
            <value>cluster.manager.active</value>
        </criterion>
    </criteria>
</find-item-command>

美しく印刷するための最良の方法は何ですか?

10
michali

このために、内部で vkbeautify を使用するカスタムパイプを作成できます。

npm install -S vkbeautify

カスタムxmlパイプの例:

import * as vkbeautify from 'vkbeautify';
import { Pipe, PipeTransform } from "@angular/core";

@Pipe({
    name: 'xml'
})
export class XmlPipe implements PipeTransform {
    transform(value: string): string {
        return vkbeautify.xml(value);
    }
}

App.moduleでカスタムパイプを宣言します。例:

import { AppComponent } from './app.component';
import { XmlPipe } from '...';

@NgModule({
    declarations: [
        AppComponent,
        ...,
        ...,
        XmlPipe
    ],
    ...

そして、次のようにテンプレートでカスタムパイプを使用できます。

<pre>{{xmlString | xml}}</pre>
16
Saeb Amini