@bspark wrote:
Hi.
I’m developing something. below is the scheme.
- User click button
- My app write a XML file(using Ionic native fileWrite method)
- If the user click that button once, then the XML file is like below:
<FILES> <FILE> <FileName>test.txt</FileName> </FILE> </FILES>
- If the user click other button, app lists the list of FileName
ex)alert(fileList[0]);
For this steps, I wrote codes like below:
(this method is called when user click the Step 1 button)
writeListMeta() { var parser: any = new X2JS(); var temp: any; temp = { "FILES": { "FILE": { "FileName": 'test.txt' } } } let content = parser.js2xml(temp); this.file.writeFile(this.path, 'file.xml', content, { append: true, replace: false }) .then(_ => alert('success')) .catch(err => alert('err : ' + err)); }
and below method is called when user click Step 4 button:
parserFileList() { alert('here'); var parser: any = new X2JS(); var content: any; var fileList = []; this.file.readAsText(this.filePath, this.fileName) .then(str => { content = parser.xml2js(str); for (let i = 0; i < content["FILES"]["FILE"].length; i++) { fileList[i] = content["FILES"]["FILE"][i]["FileName"]; alert(fileList[i]); } }) .catch(err => alert('err : ' + err)) }
As you already recognize the problem, In this situation, if user click Step 1 button one more time, then the XML file will be like below:
<FILES> <FILE> <FileName>test.txt</FileName> </FILE> </FILES> <FILES> <FILE> <FileName>test.txt</FileName> </FILE> </FILES>
Even if I want the XML file like below:
<FILES> <FILE> <FileName>test.txt</FileName> </FILE> <FILE> <FileName>test.txt</FileName> </FILE> </FILES>
So, I’m wondering how to append a text in a existing file’s specific location.
At first, I just designed the xml structure that has no like below:
<FILE> <FileName>test.txt</FileName> </FILE> <FILE> <FileName>test.txt</FileName> </FILE>
then other methods will be changed like below:
writeListMeta() { var parser: any = new X2JS(); var temp: any; temp = { "FILE": { "FileName": this.fileName } } let content = parser.js2xml(temp); this.file.writeFile(this.path, 'file.xml', content, { append: true, replace: false }) .then(_ => alert('success')) .catch(err => alert('err : ' + err)); }
parserFileList() { alert('here'); var parser: any = new X2JS(); var content: any; var fileList = []; this.file.readAsText(this.filePath, this.fileName) .then(str => { content = parser.xml2js(str); for (let i = 0; i < content["FILE"].length; i++) { fileList[i] = content["FILE"][i]["FileName"]; alert(fileList[i]); } }) .catch(err => alert('err : ' + err)) }
But then, it gives me an error like this.
I think this is about the XML structure’s problem, so I would like to solve this problem with the way that appending a text in a existing file’s specific location.
Any solution?
Posts: 1
Participants: 1