我必须将<textarea>
标记中的文本值传递给XML文件,每个标记长度不同,用空格分隔,并带有模板XSLT文件和客户端转换。
为此,需要将输入文本转换为XML,如示例中所示:
来自textarea
的输入文字:
Ax00100200300400 Phillipe Waken Brunn
需要像以下XML 一样插入与输入文本相同的textarea
作为响应:
<?xml version="1.0" encoding="utf-8"?>
<MainRequest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Request version="1.0">
<Products>
<Server xsi:noNamespaceSchemaLocation="">
</TRX>
<Number>Ax00100200300400</Number>
</TRX>
<Applicant>
<Name>
<Surname>Waken</Surname>
<First>Phillipe</First>
<Middle>Brunn</Middle>
</Name>
</Applicant>
</Server>
</Products>
</Request>
</MainRequest>
预期的流程如下:
textarea
textarea
。答案 0 :(得分:0)
鉴于非常简单的要求,以及您希望在客户端(即在Web浏览器中)中完成所有这些操作的事实,我可能只是使用直接JavaScript来执行此操作。例如:
var headerPart = "<?xml version=\"1.0\" encoding=\"utf-8\"?><MainRequest xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"><Request version=\"1.0\"><Products><Server xsi:noNamespaceSchemaLocation=\"\"><TRX><Number>";
var surnamePart = "</Number></TRX><Applicant><Name><Surname>";
var firstnamePart = "</Surname><First>";
var middlenamePart = "</First><Middle>";
var footerPart = "</Middle></Name></Applicant></Server></Products></Request></MainRequest>";
var textToParse = $("#textAreaId").val();
var textPieces = textToParse.split(" ");
var xmlToSet = headerPart + textPieces[0] + surnamePart + textPieces[3] + firstnamePart + textPieces[1] + middlenamePart + textPieces[2] + footerPart;
$("#output").val(xmlToSet);
如果您需要在XML字符串片段中添加格式化字符,请选择它(例如,使用\r\n\t
创建带有选项卡的新行)。我真的不明白你为什么要使用XSLT - JavaScript的文本操作函数通常会更容易使用,你将能够进行各种逻辑检查(例如,检查以确保{{ 1}}有四个成员,检查以确保字符串不会太长等等)并向用户提供有关错误的即时反馈,并且您生成的XML不是很复杂(没有循环/重复结构,没有复杂的模板匹配要求)。