【发布时间】:2017-11-27 22:36:51
【问题描述】:
我被 XSL 转换困住了,我一整天都在尝试很多东西。显然我不是这方面的专家。
您能帮我了解一下我的 XSL 文件有什么问题吗?
这是我的源 XML。
<?xml version="1.0" encoding="UTF-8"?>
<PublishPFTEST xmlns="http://www.ibm.com/maximo" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" creationDateTime="2017-08-18T17:20:13-03:00" transLanguage="EN" baseLanguage="EN" messageID="7584270.1503087614245122357" maximoVersion="7 6 20161014-1020 V7606-50" event="1">
<PFTESTSet>
<WORKORDER action="Add">
<ASSETNUM>MPC1234</ASSETNUM>
<DESCRIPTION>WOTEST</DESCRIPTION>
<WONUM>WO123</WONUM>
<SITEID>BEDFORD</SITEID>
</WORKORDER>
</PFTESTSet>
</PublishPFTEST>
我的 XSL 文件:
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0" xmlns="http://www.ibm.com/maximo" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/">
<TemplateSet>
<xsl:for-each select="/PublishPFTEST/PFTESTSet/WORKORDER">
<asset>
<xsl:value-of select="ASSETNUM"/>
</asset>
<desc>
<xsl:value-of select="DESCRIPTION"/>
</desc>
</xsl:for-each>
<xsl:apply-templates/>
</TemplateSet>
</xsl:template>
</xsl:stylesheet>
这是转换后的 XML 文件……它显示了其他数据,没有 XML 标记。
<?xml version="1.0" encoding="utf-8"?>
<TemplateSet xmlns="http://www.ibm.com/maximo" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
MPC1234
WOTEST
WO123
BEDFORD
</TemplateSet>
很抱歉这个问题。
【问题讨论】:
-
搜索“XSLT 默认命名空间”以获得此问题的 1000 个答案。或者无论如何,如果您只知道默认命名空间是问题所在,您会问这个问题。
-
@MichaelKay,就像我说的那样,我花了一整天的时间尝试了太多的事情——但我无法让它发挥作用。所以是我最后的手段。感谢您的反馈。祝你有美好的一天。
-
是的,这是一个艰难的过程。每天都有人掉进这个大象陷阱,很难告诉他们在解决问题的方法上做错了什么。对于大多数人来说,我认为要吸取的教训是,在开始编码之前,值得花一两天时间阅读有关新技术的书籍。
标签: xml xslt transformation