在Angular 8中,可以使用HttpClient模块来读取XML文件,并将其转换为文本。以下是一个示例解决方案:
$ npm install @angular/common @angular/compiler @angular/core @angular/platform-browser @angular/forms @angular/http rxjs --save
import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { map } from 'rxjs/operators';
import { Observable } from 'rxjs';
@Injectable({
providedIn: 'root'
})
export class XmlService {
constructor(private http: HttpClient) {}
getTextFromXmlFile(url: string): Observable {
return this.http.get(url, { responseType: 'text' }).pipe(
map(xmlData => {
// 在此处处理XML数据并将其转换为文本
const parser = new DOMParser();
const xmlDoc = parser.parseFromString(xmlData, 'text/xml');
const text = xmlDoc.documentElement.textContent;
return text;
})
);
}
}
import { Component, OnInit } from '@angular/core';
import { XmlService } from './xml.service';
@Component({
selector: 'app-xml',
templateUrl: './xml.component.html',
styleUrls: ['./xml.component.css']
})
export class XmlComponent implements OnInit {
textFromXml: string;
constructor(private xmlService: XmlService) {}
ngOnInit() {
const xmlUrl = 'path/to/your/xml/file.xml';
this.xmlService.getTextFromXmlFile(xmlUrl).subscribe(
text => {
this.textFromXml = text;
},
error => {
console.log('Error:', error);
}
);
}
}
{{ textFromXml }}
上述代码将从指定的XML文件中读取文本,并将其显示在组件模板中。请确保将“path/to/your/xml/file.xml”替换为实际的XML文件路径。