更新:这个问题由我解决,有些忙碌的家伙......:)
我有一个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>
答案 0 :(得分:0)
正确位置的一些代码:分隔文本中的每一行,然后循环将文本转换为xml的函数...
var lines = $('textarea [name = request]')。val()。split('\ n'); $ .each(lines,function(){
for(var i = 0; i&lt; this.length; i ++){ ...... } });