python 代码的并行执行 - 使用 XSLT 进行 XML 解析
我是Python的新手,并且一直在尝试使用XSLT转换XML文件。我们使用多个XSLT来处理XML文件,并将转换为CSV
def main(argv):
/*Only Part of code is pasted*/
while i < len(xslfile) and i < len(outfile):
xsl = ET.parse(xslfile[i])
transform = ET.XSLT(xsl)
newdom = transform(xml)
with open(outfile[i], 'wb') as f:
f.write(newdom)
i += 1
if __name__ == "__main__":
main(sys.argv[1:])
输入将是: “ xml.py -x” xmlfiLename“ -s” firstxsl.xsl“ -o” firstcsv.csv'-s s secondxsl.xsl“ -o” secondcsv.csv
'并行
?
<xsl:for-each select="Collection/List/Event">
<xsl:value-of select="position()"/><xsl:text>,</xsl:text>
<xsl:value-of select="$var1"/> <xsl:text>,</xsl:text>
<xsl:value-of select="srvid"/> <xsl:text>,</xsl:text>
<xsl:value-of select="acct"/> <xsl:text>,</xsl:text>
<xsl:value-of select="comm"/> <xsl:text>,</xsl:text>
<xsl:value-of select="stat"/> <xsl:text>,</xsl:text>
<xsl:value-of select="acct"/> <xsl:text>,</xsl:text>
<xsl:value-of select="test"/> <xsl:text>,</xsl:text>
<xsl:value-of select="flg"/> <xsl:text>,</xsl:text>
<xsl:value-of select="plan"/> <xsl:text>,</xsl:text>
<xsl:value-of select="state"/> <xsl:text>,</xsl:text>
<xsl:value-of select="id"/> <xsl:text>,</xsl:text>
<xsl:value-of select="grpid"/> <xsl:text>,</xsl:text>
<xsl:value-of select="name"/> <xsl:text>,</xsl:text>
<xsl:value-of select="call"/> <xsl:text>,</xsl:text>
<xsl:value-of select="origin"/> <xsl:text>,</xsl:text>
<xsl:value-of select="use"/> <xsl:text>,</xsl:text>
<xsl:value-of select="address"/> <xsl:text>,</xsl:text>
<xsl:value-of select="callid"/> <xsl:text>,</xsl:text>
<xsl:value-of select="context"/> <xsl:text>,</xsl:text>
<xsl:value-of select="sertype"/> <xsl:text>,</xsl:text>
<xsl:value-of select="address1"/> <xsl:text>,</xsl:text>
<xsl:value-of select="rqt"/> <xsl:text>,</xsl:text>
<xsl:value-of select="time"/> <xsl:text>,</xsl:text>
<xsl:value-of select="info"/> <xsl:text>,</xsl:text>
<xsl:value-of select="tet1"/> <xsl:text>,</xsl:text>
<xsl:value-of select="test2"/> <xsl:text>,</xsl:text>
<xsl:value-of select="test3"/> <xsl:text>,</xsl:text>
<xsl:value-of select="RoundingAmount"/> <xsl:text>,</xsl:text>
<xsl:value-of select="UsageRoundingAmount"/> <xsl:text>,</xsl:text>
<xsl:value-of select="UsageRoundingAmountUnit"/> <xsl:text>,</xsl:text>
<xsl:value-of select="Agg"/> <xsl:text>,</xsl:text>
<xsl:value-of select="IniId"/> <xsl:text>,</xsl:text>
<xsl:value-of select="IniExId"/> <xsl:text>,</xsl:text>
<xsl:value-of select="IniDeviceId"/> <xsl:text>,</xsl:text>
<xsl:value-of select="DeviceExternalId"/> <xsl:text>,</xsl:text>
<xsl:value-of select="Flags"/> <xsl:text>,</xsl:text>
<xsl:value-of select="WalId"/> <xsl:text>,</xsl:text>
<xsl:value-of select="WalOwnerId"/> <xsl:text>,</xsl:text>
<xsl:value-of select="WalExternalId"/> <xsl:text>,</xsl:text>
<xsl:value-of select="Tax"/> <xsl:text>,</xsl:text>
<xsl:value-of select="TaxCert"/> <xsl:text>,</xsl:text>
<xsl:value-of select="TaxLoc"/> <xsl:text>,</xsl:text>
<xsl:value-of select="EventT"/> <xsl:text>,</xsl:text>
<xsl:value-of select="Dur"/> <xsl:text>,</xsl:text>
<xsl:value-of select="EventId"/> <xsl:text>,</xsl:text>
<xsl:value-of select="Date"/> <xsl:text>,</xsl:text>
<xsl:value-of select="Center"/> <xsl:text>,</xsl:text>
<xsl:value-of select="AuthEventId"/> <xsl:text>,</xsl:text>
<xsl:value-of select="Del"/> <xsl:text>,</xsl:text>
<xsl:value-of select="VersionId"/> <xsl:text>,</xsl:text>
<xsl:value-of select="PrimaUserId"/> <xsl:text>,</xsl:text>
<xsl:value-of select="PrimUserExtrId"/><xsl:text>,</xsl:text>
<xsl:value-of select="InitiatorType"/><xsl:text>,</xsl:text>
<xsl:value-of select="WalOwnerType"/><xsl:text>,</xsl:text>
<xsl:value-of select="tag"/> <xsl:text>,</xsl:text>
<xsl:value-of select="area"/>
I am new to python and have been trying to transform a XML file using XSLT.We are using multiple XSLT to process the XML file and convert to csv
def main(argv):
/*Only Part of code is pasted*/
while i < len(xslfile) and i < len(outfile):
xsl = ET.parse(xslfile[i])
transform = ET.XSLT(xsl)
newdom = transform(xml)
with open(outfile[i], 'wb') as f:
f.write(newdom)
i += 1
if __name__ == "__main__":
main(sys.argv[1:])
Input will be :
"xml.py -x "XMLFILENAME" -s "firstxsl.xsl" -o "firstcsv.csv" -s "secondxsl.xsl" -o "secondcsv.csv"
is there any best way to run the parsing of firstxsl and secondxsl in parallel ?
sample xslt
This is the master event xslt
<xsl:for-each select="Collection/List/Event">
<xsl:value-of select="position()"/><xsl:text>,</xsl:text>
<xsl:value-of select="$var1"/> <xsl:text>,</xsl:text>
<xsl:value-of select="srvid"/> <xsl:text>,</xsl:text>
<xsl:value-of select="acct"/> <xsl:text>,</xsl:text>
<xsl:value-of select="comm"/> <xsl:text>,</xsl:text>
<xsl:value-of select="stat"/> <xsl:text>,</xsl:text>
<xsl:value-of select="acct"/> <xsl:text>,</xsl:text>
<xsl:value-of select="test"/> <xsl:text>,</xsl:text>
<xsl:value-of select="flg"/> <xsl:text>,</xsl:text>
<xsl:value-of select="plan"/> <xsl:text>,</xsl:text>
<xsl:value-of select="state"/> <xsl:text>,</xsl:text>
<xsl:value-of select="id"/> <xsl:text>,</xsl:text>
<xsl:value-of select="grpid"/> <xsl:text>,</xsl:text>
<xsl:value-of select="name"/> <xsl:text>,</xsl:text>
<xsl:value-of select="call"/> <xsl:text>,</xsl:text>
<xsl:value-of select="origin"/> <xsl:text>,</xsl:text>
<xsl:value-of select="use"/> <xsl:text>,</xsl:text>
<xsl:value-of select="address"/> <xsl:text>,</xsl:text>
<xsl:value-of select="callid"/> <xsl:text>,</xsl:text>
<xsl:value-of select="context"/> <xsl:text>,</xsl:text>
<xsl:value-of select="sertype"/> <xsl:text>,</xsl:text>
<xsl:value-of select="address1"/> <xsl:text>,</xsl:text>
<xsl:value-of select="rqt"/> <xsl:text>,</xsl:text>
<xsl:value-of select="time"/> <xsl:text>,</xsl:text>
<xsl:value-of select="info"/> <xsl:text>,</xsl:text>
<xsl:value-of select="tet1"/> <xsl:text>,</xsl:text>
<xsl:value-of select="test2"/> <xsl:text>,</xsl:text>
<xsl:value-of select="test3"/> <xsl:text>,</xsl:text>
<xsl:value-of select="RoundingAmount"/> <xsl:text>,</xsl:text>
<xsl:value-of select="UsageRoundingAmount"/> <xsl:text>,</xsl:text>
<xsl:value-of select="UsageRoundingAmountUnit"/> <xsl:text>,</xsl:text>
<xsl:value-of select="Agg"/> <xsl:text>,</xsl:text>
<xsl:value-of select="IniId"/> <xsl:text>,</xsl:text>
<xsl:value-of select="IniExId"/> <xsl:text>,</xsl:text>
<xsl:value-of select="IniDeviceId"/> <xsl:text>,</xsl:text>
<xsl:value-of select="DeviceExternalId"/> <xsl:text>,</xsl:text>
<xsl:value-of select="Flags"/> <xsl:text>,</xsl:text>
<xsl:value-of select="WalId"/> <xsl:text>,</xsl:text>
<xsl:value-of select="WalOwnerId"/> <xsl:text>,</xsl:text>
<xsl:value-of select="WalExternalId"/> <xsl:text>,</xsl:text>
<xsl:value-of select="Tax"/> <xsl:text>,</xsl:text>
<xsl:value-of select="TaxCert"/> <xsl:text>,</xsl:text>
<xsl:value-of select="TaxLoc"/> <xsl:text>,</xsl:text>
<xsl:value-of select="EventT"/> <xsl:text>,</xsl:text>
<xsl:value-of select="Dur"/> <xsl:text>,</xsl:text>
<xsl:value-of select="EventId"/> <xsl:text>,</xsl:text>
<xsl:value-of select="Date"/> <xsl:text>,</xsl:text>
<xsl:value-of select="Center"/> <xsl:text>,</xsl:text>
<xsl:value-of select="AuthEventId"/> <xsl:text>,</xsl:text>
<xsl:value-of select="Del"/> <xsl:text>,</xsl:text>
<xsl:value-of select="VersionId"/> <xsl:text>,</xsl:text>
<xsl:value-of select="PrimaUserId"/> <xsl:text>,</xsl:text>
<xsl:value-of select="PrimUserExtrId"/><xsl:text>,</xsl:text>
<xsl:value-of select="InitiatorType"/><xsl:text>,</xsl:text>
<xsl:value-of select="WalOwnerType"/><xsl:text>,</xsl:text>
<xsl:value-of select="tag"/> <xsl:text>,</xsl:text>
<xsl:value-of select="area"/>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论