Textarea到XML使用大文件自动化流程

时间:2015-08-25 20:59:05

标签: javascript xml automation textarea


更新:这个问题由我解决,有些忙碌的家伙......:)

我有一个HTML,其中包含一个名为“request”的textarea,我创建了下面的JS代码,将任何文本转换为符合某些业务需求需求的xml,问题是转换仅在第一行发生一次,I意思是,我点击“转换txt2xml”按钮,只转换粘贴在textarea中的第一行,并没有继续第二,第三等。
我必须处理一个包含300个或更少元素的文件,我想稍微自动化这个过程。

可以以任何方式粘贴textarea中的所有元素,然后分隔每一行,在同一个textarea中将每个分离的元素一个接一个地转换为xml?

function ss2xml_v5() {

var headerPart = "<?xml version=\"1.0\" encoding=\"utf-8\"?><A><B><C>";
var body_1 = "<1><2>";
var body_2 = "</2><3><4>";
var body_3 = "</4><5>";
var body_4 = "</5><6>";
var body_5 = "</6></3><7>";
var body_6 = "</7></6></3>";
var footerPart = "</1></C></B></A>";

var lines = $('textarea[name=request]').val().split('\n');
$.each(lines, function(){
	
for (var i = 0; i < this.length;i++) {
  
var ID = this.substring(0, 17);
var ID = ID.replace(/^\s+|\s+$/g,'')

var NAME = this.substring(18, 36);
var NAME = NAME.replace(/^\s+|\s+$/g,'');

var LAST_NAME = this.substring(37, 47);
var LAST_NAME = LAST_NAME.replace(/^\s+|\s+$/g,'');
	
var PHONE = this.substring(48, 58);
var PHONE = PHONE.replace(/^\s+|\s+$/g,'');

var NUMBER = this.substring(59, 62);
var NUMBER = NUMBER.replace(/^\s+|\s+$/g,'');


//Set XML //
var xmlToSet = headerPart+body_1+ID+body_2+NAME+body_3+LAST_NAME+body_4+PHONE+body_5+NUMBER+body_6+footerPart+'\n\n';

}

//Print XML
document.getElementById("response").value += xmlToSet;
     
});

}
<html>
<body>  
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
  
Press button to transform text to xml:<br/>
<button onClick="ss2xml_v5();">SS to XML</button>

<br/><br/>
<textarea name="request" id="request">AA_Address_AA     John               Good       2025547416 02
BB_Address_BB     John               Good       2025547416 02</textarea>
  
<br/><br/>
<textarea name="response" id="response"></textarea>

</body>
</html>

1 个答案:

答案 0 :(得分:0)

正确位置的一些代码:分隔文本中的每一行,然后循环将文本转换为xml的函数...

var lines = $('textarea [name = request]')。val()。split('\ n'); $ .each(lines,function(){

for(var i = 0; i&lt; this.length; i ++){  ...... } });