Infopath入门到精通系列-6 Infopath xsl文件解析校验

1、Infopath 介绍

Infopath工具保存后默认生成xsn格式的文件。
在这里插入图片描述
将上图中的文件后缀名修改为全国面上广告申请.zip 并进行解压。如下图所示:
在这里插入图片描述
效果图如下:
在这里插入图片描述

2、Infopath xsl文件内容

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:my="http://schemas.microsoft.com/office/infopath/2003/myXSD/2021-08-11T07:06:00" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:xd="http://schemas.microsoft.com/office/infopath/2003" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:xdExtension="http://schemas.microsoft.com/office/infopath/2003/xslt/extension" xmlns:xdXDocument="http://schemas.microsoft.com/office/infopath/2003/xslt/xDocument" xmlns:xdSolution="http://schemas.microsoft.com/office/infopath/2003/xslt/solution" xmlns:xdFormatting="http://schemas.microsoft.com/office/infopath/2003/xslt/formatting" xmlns:xdImage="http://schemas.microsoft.com/office/infopath/2003/xslt/xImage" xmlns:xdUtil="http://schemas.microsoft.com/office/infopath/2003/xslt/Util" xmlns:xdMath="http://schemas.microsoft.com/office/infopath/2003/xslt/Math" xmlns:xdDate="http://schemas.microsoft.com/office/infopath/2003/xslt/Date" xmlns:sig="http://www.w3.org/2000/09/xmldsig#" xmlns:xdSignatureProperties="http://schemas.microsoft.com/office/infopath/2003/SignatureProperties" xmlns:ipApp="http://schemas.microsoft.com/office/infopath/2006/XPathExtension/ipApp" xmlns:xdEnvironment="http://schemas.microsoft.com/office/infopath/2006/xslt/environment" xmlns:xdUser="http://schemas.microsoft.com/office/infopath/2006/xslt/User" xmlns:xdServerInfo="http://schemas.microsoft.com/office/infopath/2009/xslt/ServerInfo">
	
																			<td style="BORDER-TOP: #000000 1pt solid; BORDER-RIGHT: #000000 1pt solid; VERTICAL-ALIGN: middle; BORDER-BOTTOM: #000000 1pt solid; PADDING-BOTTOM: 1px; PADDING-TOP: 1px; PADDING-LEFT: 1px; BORDER-LEFT: #000000 1pt solid; PADDING-RIGHT: 1px">
																				<div align="center">
																					<font size="2" face="微软雅黑"><span title="" class="xdTextBox" hideFocus="1" xd:xctname="PlainText" xd:CtrlId="CTRL21" xd:binding="my:费用类型" tabIndex="0" style="WIDTH: 100%">
																							<xsl:value-of select="my:费用类型"/>
																						</span>
																					</font>
																				</div>
																			</td>
																			<td style="BORDER-TOP: #000000 1pt solid; BORDER-RIGHT: #000000 1pt solid; VERTICAL-ALIGN: middle; BORDER-BOTTOM: #000000 1pt solid; PADDING-BOTTOM: 1px; PADDING-TOP: 1px; PADDING-LEFT: 1px; BORDER-LEFT: #000000 1pt solid; PADDING-RIGHT: 1px">
																				<div align="center">
																					<font size="2" face="微软雅黑"><span title="" class="xdTextBox" hideFocus="1" xd:xctname="PlainText" xd:CtrlId="CTRL22" xd:binding="my:媒体大类" tabIndex="0" style="WIDTH: 100%">
																							<xsl:value-of select="my:媒体大类"/>
																						</span>
																					</font>
																				</div>
																			</td>
																			<td style="BORDER-TOP: #000000 1pt solid; BORDER-RIGHT: #000000 1pt solid; VERTICAL-ALIGN: middle; BORDER-BOTTOM: #000000 1pt solid; PADDING-BOTTOM: 1px; PADDING-TOP: 1px; PADDING-LEFT: 1px; BORDER-LEFT: #000000 1pt solid; PADDING-RIGHT: 1px">
																				<div align="center">
																					<font size="2" face="微软雅黑"><span title="" class="xdTextBox" hideFocus="1" xd:xctname="PlainText" xd:CtrlId="CTRL23" xd:binding="my:媒体小类" tabIndex="0" style="WIDTH: 100%">
																							<xsl:value-of select="my:媒体小类"/>
																						</span>
																					</font>
																				</div>
																			</td>
																			<td style="BORDER-TOP: #000000 1pt solid; BORDER-RIGHT: #000000 1pt solid; VERTICAL-ALIGN: middle; BORDER-BOTTOM: #000000 1pt solid; PADDING-BOTTOM: 1px; PADDING-TOP: 1px; PADDING-LEFT: 1px; BORDER-LEFT: #000000 1pt solid; PADDING-RIGHT: 1px">
																				<div align="center">
																					<font size="2" face="微软雅黑"><span title="" class="xdTextBox" hideFocus="1" xd:xctname="PlainText" xd:CtrlId="CTRL24" xd:binding="my:活动形式" tabIndex="0" style="WIDTH: 100%">
																							<xsl:value-of select="my:活动形式"/>
																						</span>
																					</font>
																				</div>
																			</td>
																			<td style="BORDER-TOP: #000000 1pt solid; BORDER-RIGHT: #000000 1pt solid; VERTICAL-ALIGN: middle; BORDER-BOTTOM: #000000 1pt solid; PADDING-BOTTOM: 1px; PADDING-TOP: 1px; PADDING-LEFT: 1px; BORDER-LEFT: #000000 1pt solid; PADDING-RIGHT: 1px">
																				<div align="center">
																					<font size="2" face="微软雅黑"><span title="" class="xdTextBox" hideFocus="1" xd:xctname="PlainText" xd:CtrlId="CTRL25" xd:binding="my:推广品牌id" tabIndex="0" style="WIDTH: 100%">
																							<xsl:value-of select="my:推广品牌id"/>
																						</span>
																					</font>
																				</div>
																			</td>
																			<td style="BORDER-TOP: #000000 1pt solid; BORDER-RIGHT: #000000 1pt solid; VERTICAL-ALIGN: middle; BORDER-BOTTOM: #000000 1pt solid; PADDING-BOTTOM: 1px; PADDING-TOP: 1px; PADDING-LEFT: 1px; BORDER-LEFT: #000000 1pt solid; PADDING-RIGHT: 1px">
																				<div align="center">
																					<font size="2" face="微软雅黑"><span title="" class="xdTextBox" hideFocus="1" xd:xctname="PlainText" xd:CtrlId="CTRL26" xd:binding="my:推广品牌" tabIndex="0" style="WIDTH: 100%">
																							<xsl:value-of select="my:推广品牌"/>
																						</span>
																					</font>
																				</div>
																			</td>
																			<td style="BORDER-TOP: #000000 1pt solid; BORDER-RIGHT: #000000 1pt solid; VERTICAL-ALIGN: middle; BORDER-BOTTOM: #000000 1pt solid; PADDING-BOTTOM: 1px; PADDING-TOP: 1px; PADDING-LEFT: 1px; BORDER-LEFT: #000000 1pt solid; PADDING-RIGHT: 1px">
																				<div align="center">
																					<font size="2" face="微软雅黑"><span title="" class="xdTextBox" hideFocus="1" xd:xctname="PlainText" xd:CtrlId="CTRL27" xd:binding="my:数量" tabIndex="0" style="WIDTH: 100%">
																							<xsl:value-of select="my:数量"/>
																						</span>
																					</font>
																				</div>
																			</td>
																			<td style="BORDER-TOP: #000000 1pt solid; BORDER-RIGHT: #000000 1pt solid; VERTICAL-ALIGN: middle; BORDER-BOTTOM: #000000 1pt solid; PADDING-BOTTOM: 1px; PADDING-TOP: 1px; PADDING-LEFT: 1px; BORDER-LEFT: #000000 1pt solid; PADDING-RIGHT: 1px">
																				<div align="center">
																					<font size="2" face="微软雅黑"><span title="" class="xdTextBox" hideFocus="1" xd:xctname="PlainText" xd:CtrlId="CTRL28" xd:binding="my:单位" tabIndex="0" style="WIDTH: 100%">
																							<xsl:value-of select="my:单位"/>
																						</span>
																					</font>
																				</div>
																			</td>
																			<td style="BORDER-TOP: #000000 1pt solid; BORDER-RIGHT: #000000 1pt solid; VERTICAL-ALIGN: middle; BORDER-BOTTOM: #000000 1pt solid; PADDING-BOTTOM: 1px; PADDING-TOP: 1px; PADDING-LEFT: 1px; BORDER-LEFT: #000000 1pt solid; PADDING-RIGHT: 1px">
																				<div align="center">
																					<font size="2" face="微软雅黑"><span title="" class="xdTextBox" hideFocus="1" xd:xctname="PlainText" xd:CtrlId="CTRL29" xd:binding="my:申请金额" tabIndex="0" style="WIDTH: 100%">
																							<xsl:value-of select="my:申请金额"/>
																						</span>
																					</font>
																				</div>
																			</td>
																			<td style="BORDER-TOP: #000000 1pt solid; BORDER-RIGHT: #000000 1pt solid; VERTICAL-ALIGN: middle; BORDER-BOTTOM: #000000 1pt solid; PADDING-BOTTOM: 1px; PADDING-TOP: 1px; PADDING-LEFT: 1px; BORDER-LEFT: #000000 1pt solid; PADDING-RIGHT: 1px">
																				<div align="center">
																					<font size="2" face="微软雅黑"><span title="" class="xdTextBox" hideFocus="1" xd:xctname="PlainText" xd:CtrlId="CTRL30" xd:binding="my:厂方支持比例" tabIndex="0" style="WIDTH: 100%">
																							<xsl:value-of select="my:厂方支持比例"/>
																						</span>
																					</font>
																				</div>
																			</td>
																			<td style="BORDER-TOP: #000000 1pt solid; BORDER-RIGHT: #000000 1pt solid; VERTICAL-ALIGN: middle; BORDER-BOTTOM: #000000 1pt solid; PADDING-BOTTOM: 1px; PADDING-TOP: 1px; PADDING-LEFT: 1px; BORDER-LEFT: #000000 1pt solid; PADDING-RIGHT: 1px">
																				<div align="center">
																					<font size="2" face="微软雅黑"><span title="" class="xdTextBox" hideFocus="1" xd:xctname="PlainText" xd:CtrlId="CTRL31" xd:binding="my:考核大区" tabIndex="0" style="WIDTH: 100%">
																							<xsl:value-of select="my:考核大区"/>
																						</span>
																					</font>
																				</div>
																			</td>
																			<td style="BORDER-TOP: #000000 1pt solid; BORDER-RIGHT: #000000 1pt solid; VERTICAL-ALIGN: middle; BORDER-BOTTOM: #000000 1pt solid; PADDING-BOTTOM: 1px; PADDING-TOP: 1px; PADDING-LEFT: 1px; BORDER-LEFT: #000000 1pt solid; PADDING-RIGHT: 1px">
																				<div align="center">
																					<font size="2" face="微软雅黑"><span title="" class="xdTextBox" hideFocus="1" xd:xctname="PlainText" xd:CtrlId="CTRL32" xd:binding="my:考核比例" tabIndex="0" style="WIDTH: 100%">
																							<xsl:value-of select="my:考核比例"/>
																						</span>
																					</font>
																				</div>
																			</td>
																			<td style="BORDER-TOP: #000000 1pt solid; BORDER-RIGHT: #000000 1pt solid; VERTICAL-ALIGN: middle; BORDER-BOTTOM: #000000 1pt solid; PADDING-BOTTOM: 1px; PADDING-TOP: 1px; PADDING-LEFT: 1px; BORDER-LEFT: #000000 1pt solid; PADDING-RIGHT: 1px">
																				<div align="center">
																					<font size="2" face="微软雅黑"><span title="" class="xdTextBox" hideFocus="1" xd:xctname="PlainText" xd:CtrlId="CTRL33" xd:binding="my:考核金额" tabIndex="0" style="WIDTH: 100%">
																							<xsl:value-of select="my:考核金额"/>
																						</span>
																					</font>
																				</div>
																			</td>
																			<td style="BORDER-TOP: #000000 1pt solid; BORDER-RIGHT: #000000 1pt solid; VERTICAL-ALIGN: middle; BORDER-BOTTOM: #000000 1pt solid; PADDING-BOTTOM: 1px; PADDING-TOP: 1px; PADDING-LEFT: 1px; BORDER-LEFT: #000000 1pt solid; PADDING-RIGHT: 1px">
																				<div align="center">
																					<font size="2" face="微软雅黑"><span title="" class="xdTextBox" hideFocus="1" xd:xctname="PlainText" xd:CtrlId="CTRL34" xd:binding="my:审核金额" tabIndex="0" style="WIDTH: 100%">
																							<xsl:value-of select="my:审核金额"/>
																						</span>
																					</font>
																				</div>
																			</td>
																		</tr>
																	</xsl:for-each>
																</tbody>
															</table>
															<div class="optionalPlaceholder" xd:xmlToEdit="组2_46" tabIndex="0" xd:action="xCollection::insert" style="WIDTH: 1092px">插入项</div>
														</div>
													</td>
												</tr>
												<tr style="MIN-HEIGHT: 22px">
													<td style="BORDER-TOP: #000000 1pt solid; BORDER-RIGHT: #000000 1pt solid; VERTICAL-ALIGN: middle; BORDER-BOTTOM: #000000 1pt solid; PADDING-BOTTOM: 1px; PADDING-TOP: 1px; PADDING-LEFT: 1px; BORDER-LEFT: #000000 1pt solid; PADDING-RIGHT: 1px">
														<div align="center">
															<font size="2" face="微软雅黑">申请金额合计</font>
														</div>
													</td>
													<td style="BORDER-TOP: #000000 1pt solid; BORDER-RIGHT: #000000 1pt solid; VERTICAL-ALIGN: middle; BORDER-BOTTOM: #000000 1pt solid; PADDING-BOTTOM: 1px; PADDING-TOP: 1px; PADDING-LEFT: 1px; BORDER-LEFT: #000000 1pt solid; PADDING-RIGHT: 1px">
														<div align="center">
															<font size="2" face="微软雅黑"><span title="" class="xdTextBox" hideFocus="1" xd:xctname="PlainText" xd:CtrlId="CTRL35" xd:binding="my:申请金额合计" tabIndex="0" style="WIDTH: 100%">
																	<xsl:value-of select="my:申请金额合计"/>
																</span>
															</font>
														</div>
													</td>
													<td colSpan="4" style="BORDER-TOP: #000000 1pt solid; BORDER-RIGHT: #000000 1pt solid; VERTICAL-ALIGN: middle; BORDER-BOTTOM: #000000 1pt solid; PADDING-BOTTOM: 1px; PADDING-TOP: 1px; PADDING-LEFT: 1px; BORDER-LEFT: #000000 1pt solid; PADDING-RIGHT: 1px">
														<div align="center">
															<font size="2" face="微软雅黑"><span title="" class="xdTextBox" hideFocus="1" xd:xctname="PlainText" xd:CtrlId="CTRL36" xd:binding="my:申请金额合计大写" tabIndex="0" style="WIDTH: 100%">
																	<xsl:value-of select="my:申请金额合计大写"/>
																</span>
															</font>
														</div>
													</td>
												</tr>
												<tr style="MIN-HEIGHT: 22px">
													<td style="BORDER-TOP: #000000 1pt solid; BORDER-RIGHT: #000000 1pt solid; VERTICAL-ALIGN: middle; BORDER-BOTTOM: #000000 1pt solid; PADDING-BOTTOM: 1px; PADDING-TOP: 1px; PADDING-LEFT: 1px; BORDER-LEFT: #000000 1pt solid; PADDING-RIGHT: 1px">
														<div align="center">
															<font size="2" face="微软雅黑">审核金额合计</font>
														</div>
													</td>
													<td style="BORDER-TOP: #000000 1pt solid; BORDER-RIGHT: #000000 1pt solid; VERTICAL-ALIGN: middle; BORDER-BOTTOM: #000000 1pt solid; PADDING-BOTTOM: 1px; PADDING-TOP: 1px; PADDING-LEFT: 1px; BORDER-LEFT: #000000 1pt solid; PADDING-RIGHT: 1px">
														<div align="center">
															<font size="2" face="微软雅黑"><span title="" class="xdTextBox" hideFocus="1" xd:xctname="PlainText" xd:CtrlId="CTRL37" xd:binding="my:审核金额合计" tabIndex="0" style="WIDTH: 100%">
																	<xsl:value-of select="my:审核金额合计"/>
																</span>
															</font>
														</div>
													</td>
													<td colSpan="4" style="BORDER-TOP: #000000 1pt solid; BORDER-RIGHT: #000000 1pt solid; VERTICAL-ALIGN: middle; BORDER-BOTTOM: #000000 1pt solid; PADDING-BOTTOM: 1px; PADDING-TOP: 1px; PADDING-LEFT: 1px; BORDER-LEFT: #000000 1pt solid; PADDING-RIGHT: 1px">
														<div align="center">
															<font size="2" face="微软雅黑"><span title="" class="xdTextBox" hideFocus="1" xd:xctname="PlainText" xd:CtrlId="CTRL38" xd:binding="my:审核金额合计大写" tabIndex="0" style="WIDTH: 100%">
																	<xsl:value-of select="my:审核金额合计大写"/>
																</span>
															</font>
														</div>
													</td>
												</tr>
												<tr style="MIN-HEIGHT: 22px">
													<td style="BORDER-TOP: #000000 1pt solid; BORDER-RIGHT: #000000 1pt solid; VERTICAL-ALIGN: middle; BORDER-BOTTOM: #000000 1pt solid; PADDING-BOTTOM: 1px; PADDING-TOP: 1px; PADDING-LEFT: 1px; BORDER-LEFT: #000000 1pt solid; PADDING-RIGHT: 1px">
														<div align="center">
															<font size="2" face="微软雅黑">活动投放规划</font>
														</div>
													</td>
													<td colSpan="5" style="BORDER-TOP: #000000 1pt solid; BORDER-RIGHT: #000000 1pt solid; VERTICAL-ALIGN: middle; BORDER-BOTTOM: #000000 1pt solid; PADDING-BOTTOM: 1px; PADDING-TOP: 1px; PADDING-LEFT: 1px; BORDER-LEFT: #000000 1pt solid; PADDING-RIGHT: 1px">
														<div align="center">
															<font size="2" face="微软雅黑"><span title="" class="xdTextBox" hideFocus="1" xd:xctname="PlainText" xd:CtrlId="CTRL39" xd:binding="my:活动投放规划" tabIndex="0" style="WIDTH: 100%">
																	<xsl:value-of select="my:活动投放规划"/>
																</span>
															</font>
														</div>
													</td>
												</tr>
												<tr style="MIN-HEIGHT: 22px">
													<td style="BORDER-TOP: #000000 1pt solid; BORDER-RIGHT: #000000 1pt solid; VERTICAL-ALIGN: middle; BORDER-BOTTOM: #000000 1pt solid; PADDING-BOTTOM: 1px; PADDING-TOP: 1px; PADDING-LEFT: 1px; BORDER-LEFT: #000000 1pt solid; PADDING-RIGHT: 1px">
														<div align="center">
															<font size="2" face="微软雅黑">前期调研情况</font>
														</div>
													</td>
													<td colSpan="5" style="BORDER-TOP: #000000 1pt solid; BORDER-RIGHT: #000000 1pt solid; VERTICAL-ALIGN: middle; BORDER-BOTTOM: #000000 1pt solid; PADDING-BOTTOM: 1px; PADDING-TOP: 1px; PADDING-LEFT: 1px; BORDER-LEFT: #000000 1pt solid; PADDING-RIGHT: 1px">
														<div align="center">
															<font size="2" face="微软雅黑"><span title="" class="xdTextBox" hideFocus="1" xd:xctname="PlainText" xd:CtrlId="CTRL40" xd:binding="my:前期调研情况" tabIndex="0" style="WIDTH: 100%">
																	<xsl:value-of select="my:前期调研情况"/>
																</span>
															</font>
														</div>
													</td>
												</tr>
												<tr style="MIN-HEIGHT: 22px">
													<td style="BORDER-TOP: #000000 1pt solid; BORDER-RIGHT: #000000 1pt solid; VERTICAL-ALIGN: middle; BORDER-BOTTOM: #000000 1pt solid; PADDING-BOTTOM: 1px; PADDING-TOP: 1px; PADDING-LEFT: 1px; BORDER-LEFT: #000000 1pt solid; PADDING-RIGHT: 1px">
														<div align="center">
															<font size="2" face="微软雅黑">采购类型申请理由及依据</font>
														</div>
													</td>
													<td colSpan="5" style="BORDER-TOP: #000000 1pt solid; BORDER-RIGHT: #000000 1pt solid; VERTICAL-ALIGN: middle; BORDER-BOTTOM: #000000 1pt solid; PADDING-BOTTOM: 1px; PADDING-TOP: 1px; PADDING-LEFT: 1px; BORDER-LEFT: #000000 1pt solid; PADDING-RIGHT: 1px">
														<div align="center">
															<font size="2" face="微软雅黑"><span title="" class="xdTextBox" hideFocus="1" xd:xctname="PlainText" xd:CtrlId="CTRL41" xd:binding="my:采购类型申请理由及依据" tabIndex="0" style="WIDTH: 100%">
																	<xsl:value-of select="my:采购类型申请理由及依据"/>
																</span>
															</font>
														</div>
													</td>
												</tr>
												<tr style="MIN-HEIGHT: 22px">
													<td style="BORDER-TOP: #000000 1pt solid; BORDER-RIGHT: #000000 1pt solid; VERTICAL-ALIGN: middle; BORDER-BOTTOM: #000000 1pt solid; PADDING-BOTTOM: 1px; PADDING-TOP: 1px; PADDING-LEFT: 1px; BORDER-LEFT: #000000 1pt solid; PADDING-RIGHT: 1px">
														<div align="center">
															<font size="2" face="微软雅黑">备注</font>
														</div>
													</td>
													<td colSpan="5" style="BORDER-TOP: #000000 1pt solid; BORDER-RIGHT: #000000 1pt solid; VERTICAL-ALIGN: middle; BORDER-BOTTOM: #000000 1pt solid; PADDING-BOTTOM: 1px; PADDING-TOP: 1px; PADDING-LEFT: 1px; BORDER-LEFT: #000000 1pt solid; PADDING-RIGHT: 1px">
														<div align="center">
															<font size="2" face="微软雅黑"><span title="" class="xdTextBox" hideFocus="1" xd:xctname="PlainText" xd:CtrlId="CTRL42" xd:binding="my:备注" tabIndex="0" style="WIDTH: 100%">
																	<xsl:value-of select="my:备注"/>
																</span>
															</font>
														</div>
													</td>
												</tr>
												<tr style="MIN-HEIGHT: 22px">
													<td style="BORDER-TOP: #000000 1pt solid; BORDER-RIGHT: #000000 1pt solid; VERTICAL-ALIGN: middle; BORDER-BOTTOM: #000000 1pt solid; PADDING-BOTTOM: 1px; PADDING-TOP: 1px; PADDING-LEFT: 1px; BORDER-LEFT: #000000 1pt solid; PADDING-RIGHT: 1px">
														<div align="center">
															<font size="2" face="微软雅黑">目前实施项目及费用简述</font>
														</div>
													</td>
													<td colSpan="5" style="BORDER-TOP: #000000 1pt solid; BORDER-RIGHT: #000000 1pt solid; VERTICAL-ALIGN: middle; BORDER-BOTTOM: #000000 1pt solid; PADDING-BOTTOM: 1px; PADDING-TOP: 1px; PADDING-LEFT: 1px; BORDER-LEFT: #000000 1pt solid; PADDING-RIGHT: 1px">
														<div align="center">
															<font size="2" face="微软雅黑"><span title="" class="xdTextBox" hideFocus="1" xd:xctname="PlainText" xd:CtrlId="CTRL43" xd:binding="my:目前实施项目及费用简述" tabIndex="0" style="WIDTH: 100%">
																	<xsl:value-of select="my:目前实施项目及费用简述"/>
																</span>
															</font>
														</div>
													</td>
												</tr>
												<tr style="MIN-HEIGHT: 22px">
													<td colSpan="6" style="BORDER-TOP: #000000 1pt solid; BORDER-RIGHT: #000000 1pt solid; VERTICAL-ALIGN: middle; BORDER-BOTTOM: #000000 1pt solid; PADDING-BOTTOM: 1px; PADDING-TOP: 1px; PADDING-LEFT: 1px; BORDER-LEFT: #000000 1pt solid; PADDING-RIGHT: 1px; BACKGROUND-COLOR: #00b0f0">
														<div align="center">
															<font size="2" face="微软雅黑">财务信息</font>
														</div>
													</td>
												</tr>
												<tr>
													<td style="BORDER-TOP: #000000 1pt solid; BORDER-RIGHT: #000000 1pt solid; VERTICAL-ALIGN: middle; BORDER-BOTTOM: #000000 1pt solid; PADDING-BOTTOM: 1px; PADDING-TOP: 1px; PADDING-LEFT: 1px; BORDER-LEFT: #000000 1pt solid; PADDING-RIGHT: 1px">
														<div align="center">
															<font size="2" face="微软雅黑">费用列支渠道</font>
														</div>
													</td>
													<td style="BORDER-TOP: #000000 1pt solid; BORDER-RIGHT: #000000 1pt solid; VERTICAL-ALIGN: middle; BORDER-BOTTOM: #000000 1pt solid; PADDING-BOTTOM: 1px; PADDING-TOP: 1px; PADDING-LEFT: 1px; BORDER-LEFT: #000000 1pt solid; PADDING-RIGHT: 1px">
														<div align="center">
															<font size="2" face="微软雅黑"><span title="" class="xdTextBox" hideFocus="1" xd:xctname="PlainText" xd:CtrlId="CTRL44" xd:binding="my:费用列支渠道" tabIndex="0" style="WIDTH: 100%">
																	<xsl:value-of select="my:费用列支渠道"/>
																</span>
															</font>
														</div>
													</td>
													<td style="BORDER-TOP: #000000 1pt solid; BORDER-RIGHT: #000000 1pt solid; VERTICAL-ALIGN: middle; BORDER-BOTTOM: #000000 1pt solid; PADDING-BOTTOM: 1px; PADDING-TOP: 1px; PADDING-LEFT: 1px; BORDER-LEFT: #000000 1pt solid; PADDING-RIGHT: 1px">
														<div align="center">
															<font size="2" face="微软雅黑">预算使用年度</font>
														</div>
													</td>
													<td style="BORDER-TOP: #000000 1pt solid; BORDER-RIGHT: #000000 1pt solid; VERTICAL-ALIGN: middle; BORDER-BOTTOM: #000000 1pt solid; PADDING-BOTTOM: 1px; PADDING-TOP: 1px; PADDING-LEFT: 1px; BORDER-LEFT: #000000 1pt solid; PADDING-RIGHT: 1px">
														<div align="center">
															<font size="2" face="微软雅黑"><span title="" class="xdTextBox" hideFocus="1" xd:xctname="PlainText" xd:CtrlId="CTRL45" xd:binding="my:预算使用年度" tabIndex="0" style="WIDTH: 100%">
																	<xsl:value-of select="my:预算使用年度"/>
																</span>
															</font>
														</div>
													</td>
													<td style="BORDER-TOP: #000000 1pt solid; BORDER-RIGHT: #000000 1pt solid; VERTICAL-ALIGN: middle; BORDER-BOTTOM: #000000 1pt solid; PADDING-BOTTOM: 1px; PADDING-TOP: 1px; PADDING-LEFT: 1px; BORDER-LEFT: #000000 1pt solid; PADDING-RIGHT: 1px">
														<div align="center">
															<font size="2" face="微软雅黑"></font>&#27;</div>
													</td>
													<td style="BORDER-TOP: #000000 1pt solid; BORDER-RIGHT: #000000 1pt solid; VERTICAL-ALIGN: middle; BORDER-BOTTOM: #000000 1pt solid; PADDING-BOTTOM: 1px; PADDING-TOP: 1px; PADDING-LEFT: 1px; BORDER-LEFT: #000000 1pt solid; PADDING-RIGHT: 1px">
														<div align="center">
															<font size="2" face="微软雅黑"></font>&#27;</div>
													</td>
												</tr>
											</tbody>
										</table>
									</div>
								</td>
							</tr>
						</tbody>
					</table>
				</div>
				<div align="center">&#27;</div>
			</body>
		</html>
	</xsl:template>
</xsl:stylesheet>

3、Infopath xsl文件特殊字符串替换

xsl文件内容可能会存在� �字符,这个会影响html的渲染,因此需要进行文件内容的替换。

  content = content.replace("&#27;", "&#160;");
 content = content.replace("&#28;", "&#160;");

4、Infopath xsl文件转换为xml

xsl文件进行dom的解析并进行内容的转换。

   Document document = null;
        SAXReader sr = new SAXReader();
        Element root = document.getRootElement()
          this.fileInfo = document.asXML();

5、Infopath xsl文件校验

文件的校验主要包含如下几个:
validSpan(aRoot);
validSelect(aRoot);
validInput(aRoot);
validImg(aRoot, imgMap);
validObject(aRoot);
对于文件内容的校验采用的是Element aRoot dom树形式,代码如下:


private void validSpan(Element aRoot) throws BusinessException {
        List<Element> spanList = aRoot.selectNodes("//span");
        Element element = null;
        for (int i = 0; i < spanList.size(); i++) {
            element = spanList.get(i);
            if (element.attributeValue("xctname") != null) {
                if ("RichText".equals(element.attributeValue("xctname")))
                    throw new InfoPathParseException(element.attributeValue("binding").replace("my:", ""), 2007);
                if ("DTPicker_DTText".equals(element.attributeValue("xctname")))
                    throw new InfoPathParseException(element.attributeValue("binding").replace("my:", ""), 2008);
                if ("BulletedList".equals(element.attributeValue("xctname")))
                    throw new InfoPathParseException(element.attributeValue("binding").replace("my:", ""), 2009);
                if ("NumberedList".equals(element.attributeValue("xctname")))
                    throw new InfoPathParseException(element.attributeValue("binding").replace("my:", ""), 2010);
                if ("PlainList".equals(element.attributeValue("xctname")))
                    throw new InfoPathParseException(element.attributeValue("binding").replace("my:", ""), 2011);
                if ("ExpressionBox".equals(element.attributeValue("xctname")))
                    throw new InfoPathParseException(element.attributeValue("binding").replace("my:", ""), 2012);
            }
        }
    }
       private void validInput(Element aRoot) throws BusinessException {
        List<Element> inputList = aRoot.selectNodes("//input");
        Element element = null;
        for (int i = 0; i < inputList.size(); i++) {
            element = inputList.get(i);
            if (element.attributeValue("xctname") != null) {
                if ("OptionButton".equals(element.attributeValue("xctname"))) {
                    throw new InfoPathParseException(2015);
                }
                if ("Button".equals(element.attributeValue("xctname"))) {
                    throw new InfoPathParseException(2016);
                }
                if ("CheckBox".equals(element.attributeValue("xctname"))) {
                    throw new InfoPathParseException(2023);
                }
            }
        }
    }

infopath地址:https://gitee.com/pangu-dm/infopath

上面文章来自盘古BPM研究院:http://vue.pangubpm.com/
文章翻译提交:https://github.com/qiudaoke/flowable-userguide
了解更多文章可以关注微信公众号:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值