- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 xml 文件,我需要将其转换为 txt,为此我使用了 xslt 转换。
我的 xslt 转换文件包含一些支持的 javascript 函数
如果我在 .net framework 4.5 及更高版本中运行我的代码,我可以成功转换文件,但相同的代码在 .net core 2.1 中失败。
.netcore 2.1 的文档显示了对 xslt 转换的支持,但它对我不起作用,是我缺少的任何东西。
我的输入 XML:
<?xml version="1.0" encoding="utf-8"?>
<Maps xmlns:xsi= "https://www.w3.org/TR/xmlschema-1/" xmlns:xsd= "http://www.w3.org/2001/XMLSchema" xmlns= "http://www.semi.org">
<Map SubstrateId= "EMAXA191X0121" SubstrateType= "">
<Device MachineID= "M/C Name : AOI-404" BinType= "Decimal" NullBin= "099" Orientation= "0" OriginLocation= "2" Columns= "59" Rows= "41" CreateDate= "20190111.214309" ProductId= "EMAXA191X0121" LotId= "" WaferSize= "200">
<ReferenceDevice ReferenceDeviceX= "-1" ReferenceDeviceY= "-1" />
<Bin>
<Bin BinCode= "001" BinCount= "1565" BinQuality= "Pass" />
<Bin BinCode= "061" BinCount= "657" BinQuality= "Fail" />
<Bin BinCode= "062" BinCount= "11" BinQuality= "Fail" />
<Bin BinCode= "064" BinCount= "9" BinQuality= "Fail" />
<Bin BinCode= "065" BinCount= "1" BinQuality= "Fail" />
<Bin BinCode= "069" BinCount= "143" BinQuality= "Fail" />
</Bin>
<Data MapName= "MMI G85" Version= "1.0">
<Row> <![CDATA[061 001 061 061 001 061 061 001 061 061 001 061 061 069 061 061 001 061 061 061 061 061 061 001 061 001 061 061 099 099 099 001 001 061 001 061 061 001 001 001 001 001 061 001 001 001 001 001 061 001 061 001 001 061 061 001 061 061 061]]> </Row>
<Row> <![CDATA[061 001 061 061 001 061 001 001 061 061 061 061 061 001 061 061 061 061 061 061 061 061 061 061 061 061 061 061 001 061 061 061 061 001 061 069 001 001 001 001 001 061 061 001 001 001 001 001 061 001 001 061 001 001 061 061 061 061 061]]> </Row>
<Row> <![CDATA[069 001 001 001 001 001 001 001 001 061 001 001 001 001 001 061 061 061 061 061 061 061 061 061 061 061 061 061 061 061 061 001 061 061 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 061 061 061]]> </Row>
<Row> <![CDATA[069 001 001 001 001 001 001 001 001 001 001 061 001 061 061 061 061 061 061 061 061 061 061 061 061 061 061 061 061 061 061 001 061 069 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 061 061 061]]> </Row>
<Row> <![CDATA[069 001 001 001 001 001 069 001 001 001 001 001 001 001 001 001 001 001 061 061 061 061 061 061 061 061 061 061 061 061 061 061 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 061 001 001 001 061 001 061 001 069 061 061 061]]> </Row>
<Row> <![CDATA[069 001 001 001 001 001 069 061 061 061 061 061 061 061 061 001 061 061 061 061 061 061 061 061 061 061 061 061 061 061 061 061 061 001 001 061 001 001 001 001 001 001 001 001 001 001 061 061 061 001 001 001 001 001 001 061 061 061 061]]> </Row>
<Row> <![CDATA[069 001 001 001 001 001 001 061 001 001 001 001 061 001 061 061 061 061 061 061 061 061 061 061 061 061 061 061 061 061 061 001 061 061 001 061 061 001 001 069 001 061 061 061 001 061 069 001 061 001 061 061 001 001 061 001 061 061 061]]> </Row>
<Row> <![CDATA[069 001 061 001 001 001 001 061 001 001 001 001 001 001 001 061 061 061 061 001 061 061 001 001 001 001 001 001 001 069 001 001 001 069 001 069 001 001 001 001 001 069 001 069 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001]]> </Row>
<Row> <![CDATA[069 001 001 001 001 001 001 001 001 001 001 001 001 001 061 001 061 061 061 061 061 061 061 061 061 061 061 061 061 061 061 001 061 061 001 061 001 061 061 001 061 001 069 001 061 001 001 061 061 001 061 001 001 001 001 001 061 061 061]]> </Row>
<Row> <![CDATA[061 061 001 061 001 001 061 001 001 061 001 001 001 001 061 001 001 061 061 061 061 061 061 061 061 061 061 061 061 061 061 001 061 061 001 061 069 001 001 001 001 001 001 069 061 061 001 061 061 001 001 061 001 001 001 061 061 061 001]]> </Row>
<Row> <![CDATA[069 001 001 001 001 061 001 001 061 001 001 001 061 061 061 001 061 061 061 061 061 061 061 061 061 061 061 061 061 061 061 001 061 061 001 061 001 001 001 001 061 001 061 001 069 001 061 001 061 001 001 001 001 061 001 001 001 001 061]]> </Row>
<Row> <![CDATA[069 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 069 001 001 001 001 001 001 001 001 001 001 069 001 001 001 069 001 001 001 001 001 001 069 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 061 061 061]]> </Row>
<Row> <![CDATA[069 001 001 001 001 001 001 001 001 069 001 001 001 001 001 001 001 061 061 061 061 001 061 061 001 061 061 061 001 061 001 001 061 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 061 001 001 001 001 001 001 001 001 061]]> </Row>
<Row> <![CDATA[069 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 061 061 001 061 061 061 061 061 061 061 061 001 061 061 061 061 061 001 001 001 001 001 061 001 061 001 001 001 061 061 001 001 061 001 001 061 001 001 001 001 061 061]]> </Row>
<Row> <![CDATA[069 001 001 001 001 001 061 001 001 001 001 061 001 001 001 001 001 001 069 001 001 001 001 001 001 001 001 001 069 001 069 001 001 001 001 001 001 001 001 001 001 001 061 001 001 001 001 001 001 001 001 001 001 069 001 069 069 069 001]]> </Row>
<Row> <![CDATA[001 001 001 001 001 001 001 001 001 001 001 061 001 001 001 001 001 001 069 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 069 001 001 001 001 001 061 001 061 001 001 001 001 001 001 001 069 069 061 001 061 001 001]]> </Row>
<Row> <![CDATA[069 001 001 001 061 061 001 001 001 061 001 061 001 001 061 001 001 001 069 001 001 001 001 001 001 001 001 001 001 069 001 001 001 001 001 001 001 001 061 001 001 001 001 061 061 001 001 001 001 001 001 001 001 001 001 001 001 069 069]]> </Row>
<Row> <![CDATA[061 001 001 001 001 061 001 001 001 001 001 001 001 001 001 001 001 069 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 061 001 001 001 001 001 001 001 001 001 001 001 001 001 061 061 061]]> </Row>
<Row> <![CDATA[069 061 001 001 001 001 001 061 001 001 001 001 001 001 001 001 061 001 061 061 001 001 001 061 061 061 061 061 061 069 061 001 061 061 001 061 001 001 061 061 061 061 001 061 061 001 061 001 061 001 001 061 001 001 001 001 061 061 061]]> </Row>
<Row> <![CDATA[069 001 001 001 061 061 061 001 061 001 001 061 061 001 001 001 061 001 061 001 061 061 061 061 061 061 061 061 099 099 099 001 061 001 001 061 001 001 061 061 061 001 061 061 061 001 061 061 001 069 061 001 069 001 061 069 061 061 061]]> </Row>
<Row> <![CDATA[099 099 099 099 001 001 099 099 099 099 099 001 061 061 061 061 061 001 061 061 061 061 061 061 001 061 061 061 099 099 099 061 061 061 061 061 061 061 061 061 061 061 061 061 061 061 061 001 099 099 099 099 099 001 061 099 099 099 099]]> </Row>
<Row> <![CDATA[061 061 061 061 061 061 061 001 061 001 061 061 061 061 061 001 061 061 061 061 061 061 061 061 061 061 061 061 099 099 099 061 061 061 061 061 001 001 001 061 061 001 061 061 061 061 061 001 061 061 001 061 061 001 061 001 061 061 069]]> </Row>
<Row> <![CDATA[061 061 061 001 061 061 061 061 061 061 001 061 061 061 061 001 061 061 061 001 001 001 001 061 061 001 061 061 061 061 001 001 061 061 061 061 061 061 061 061 061 061 061 061 061 061 061 061 061 061 061 061 061 001 061 001 061 061 061]]> </Row>
<Row> <![CDATA[061 001 061 001 001 061 061 061 001 061 061 061 061 001 061 001 061 061 061 061 061 061 061 061 061 061 061 061 061 061 061 001 061 061 061 061 001 061 061 061 061 061 061 061 061 001 061 061 061 061 061 061 061 061 061 061 001 061 061]]> </Row>
<Row> <![CDATA[001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 069 001 001 001 001 001 001 061 061 001 001 001 069 061 001 001 001 001 001 001 001 001 001 001 061 061 061 061 061 001 069 001 001 001 001 061 001 001 061 001 069 069 001]]> </Row>
<Row> <![CDATA[069 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 069 001 069 001 001 065 001 001 001 001 001 001 069 069 001 001 069 001 001 001 001 001 001 069 061 001 001 001 001 001 069 001 001 001 001 001 001 001 001 001 001 001 069]]> </Row>
<Row> <![CDATA[001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 069 069 001 001 001 001 001 061 001 061 061 069 001 001 001 061 001 001 001 001 001 001 001 001 001 061 061 061 001 001 001 001 001 001 001 001 001 001 001 061 001 001]]> </Row>
<Row> <![CDATA[069 001 001 001 001 001 001 001 061 001 001 001 061 001 001 001 001 069 061 001 001 001 001 001 001 001 001 001 001 069 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 061 001 001 001 001 061 061 061 069 001]]> </Row>
<Row> <![CDATA[069 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 061 069 001 001 001 001 001 001 001 001 001 001 001 001 001 061 001 001 001 001 001 001 001 061 001 001 061 061 001 061 061 061 001 001 001 061 001 061 001 061 001 069]]> </Row>
<Row> <![CDATA[069 001 001 001 001 001 001 001 001 001 001 001 061 001 001 001 061 061 061 001 001 001 061 001 001 061 001 001 001 061 069 001 001 001 001 001 001 001 001 001 001 061 061 001 001 001 001 001 001 061 001 001 001 001 001 061 069 069 001]]> </Row>
<Row> <![CDATA[069 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 069 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 061 001 001 001 001 061 001 069 001 001 001 001 061 069 001]]> </Row>
<Row> <![CDATA[069 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 061 001 069 001 061 001 001 001 001 061 001 061 061 001 001 001 061 061 001 061 001 001 061 001 061 069 061 001 061 001 001 001 001 001 001 001 001 001 001 001 001 001 001]]> </Row>
<Row> <![CDATA[069 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 069 001 001 001 001 001 001 001 001 001 001 069 001 001 001 001 001 001 001 001 001 069 001 001 001 069 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001]]> </Row>
<Row> <![CDATA[069 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 069 001 001 001 001 001 001 001 001 001 069 069 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001]]> </Row>
<Row> <![CDATA[069 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 069 069 001 001 001 001 001 001 001 001 001 069 069 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001]]> </Row>
<Row> <![CDATA[069 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 069 001 001 001 001 001 001 001 001 001 001 069 069 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 069 001 061 061 001 001 001 001 001 001 069 001 001 001]]> </Row>
<Row> <![CDATA[069 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 069 001 001 001 001 001 001 001 001 001 069 069 001 069 001 001 001 001 069 001 001 069 001 001 001 001 001 001 001 069 001 001 001 001 001 001 001 001 001 001 001]]> </Row>
<Row> <![CDATA[069 001 001 069 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 069 001 001 001 001 001 001 001 001 001 001 001 001 001 001 061 001 001 001 001 069 001 001 001 001 001 001 061 069 001]]> </Row>
<Row> <![CDATA[069 069 001 069 001 001 001 001 001 001 001 001 001 001 001 001 001 069 069 001 001 001 001 001 001 001 001 001 001 069 001 001 001 001 001 001 001 069 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 061 061 069 069 069]]> </Row>
<Row> <![CDATA[069 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 001 069 001 001 001 001 001 001 001 001 001 001 001 069 001 001 001 001 001 001 001 001 001 001 064 062 062 062 062 064 064 064 062 062 062 062 064 064 001 001 001 001 001]]> </Row>
<Row> <![CDATA[001 001 069 001 001 069 001 001 001 001 001 001 001 001 001 001 001 069 069 001 001 001 001 001 001 001 001 001 099 099 099 001 001 001 001 001 001 062 062 064 001 001 001 001 001 001 001 001 001 001 001 001 001 001 064 062 064 001 061]]> </Row>
</Data>
</Device>
</Map>
</Maps>
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsi= "https://www.w3.org/TR/xmlschema-1/"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns= "http://www.semi.org"
xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl"
xmlns:outlet = "http://my.functions">
<msxsl:script implements-prefix="outlet" language="javascript">
<![CDATA[
//script to replace string as XSLT1.0 doesnot support replace()
function replace_str(str_text,str_by)
{
return str_text.replace(str_text,str_by);
}
//script to find the incoming bin code and idendify if pass/fail/null
function identify_bin_type(available_bin_codes,search_string) {
while(available_bin_codes.MoveNext()) {
var current_bin_code = available_bin_codes.Current.Value;
if ( current_bin_code === search_string){
return current_bin_code;
}
}
return "";
}
]]>
</msxsl:script>
<xsl:strip-space elements="*"/>
<!--variable section-->
<xsl:variable name="Company_Name" select="'xxx'"/>
<xsl:variable name="Notch_Direction" select="'DOWN'"/>
<xsl:variable name="Device_Name" select="'EMAX-00'"/>
<xsl:variable name="Pass_Bin_ASE_Code" select="'1'"/>
<xsl:variable name="Fail_Bin_ASE_Code" select="'0'"/>
<xsl:variable name="Null_Bin_ASE_Code" select="'X'"/>
<xsl:variable name="Miss_Bin_ASE_Code" select="'0'"/>
<xsl:variable name="Machine_Id" select="/node()[1]/node()[1]/node()[1]/@MachineID"/>
<xsl:variable name="Wafer_Id" select="/node()[1]/node()[1]/@SubstrateId"/>
<xsl:variable name="Bin1_Count" select="/node()[1]/node()[1]/node()[1]/node()[2]/*[@BinCode='001']/@BinCount"/>
<xsl:variable name="Column_Value" select="/node()[1]/node()[1]/node()[1]/@Columns"/>
<xsl:variable name="Row_Value" select="/node()[1]/node()[1]/node()[1]/@Rows"/>
<xsl:variable name="Actual_Die_Nos" select="number($Column_Value) * number($Row_Value)"/>
<xsl:variable name="Total_Die_Nos" select="sum(/node()[1]/node()[1]/node()[1]/node()[2]/*[@BinCount]/@BinCount)"/>
<xsl:variable name="Device_Rows" select="/node()[1]/node()[1]/node()[1]/node()[3]/*/text()"/>
<xsl:variable name="Pass_Bin_Codes" select="/node()[1]/node()[1]/node()[1]/node()[2]/*[@BinQuality='Pass']/@BinCode"/>
<xsl:variable name="Fail_Bin_Codes" select="/node()[1]/node()[1]/node()[1]/node()[2]/*[@BinQuality='Fail']/@BinCode"/>
<!--<xsl:variable name="Null_Bin_Codes" select="/node()[1]/node()[1]/node()[1]/node()[2]/*[@BinQuality='Null']/@BinCode"/>-->
<xsl:variable name="Null_Bin_Codes" select="/node()[1]/node()[1]/node()[1]/@NullBin"/>
<xsl:output method="text" indent="yes"/>
<!--Transpose template called for each Device Row Data-->
<xsl:template name="find-identify-substitute-bincodes">
<xsl:param name="string"/>
<xsl:variable name="relevantSringLen" select="string-length($string)" />
<xsl:if test="$relevantSringLen > 1">
<xsl:variable name="relevant-part" select="substring-before(substring-after($string,' '),' ')"/>
<xsl:choose>
<!--Check if it a pass bin code and replace with respective pass ASE Code-->
<xsl:when test="contains(outlet:identify_bin_type($Pass_Bin_Codes,$relevant-part),$relevant-part)">
<xsl:variable name="transform-relevant-part" select="outlet:replace_str($relevant-part,$Pass_Bin_ASE_Code)" />
<xsl:value-of select="normalize-space(concat($transform-relevant-part,' '))"/>
</xsl:when>
<!--Check if it a fail bin code and replace with respective fail ASE Code-->
<xsl:when test="contains(outlet:identify_bin_type($Fail_Bin_Codes,$relevant-part),$relevant-part)">
<xsl:variable name="transform-relevant-part" select="outlet:replace_str($relevant-part,$Fail_Bin_ASE_Code)" />
<xsl:value-of select="normalize-space(concat($transform-relevant-part,' '))"/>
</xsl:when>
<!--Check if it a null bin code and replace with respective null ASE Code-->
<xsl:when test="contains(outlet:identify_bin_type($Null_Bin_Codes,$relevant-part),$relevant-part)">
<xsl:variable name="transform-relevant-part" select="outlet:replace_str($relevant-part,$Null_Bin_ASE_Code)" />
<xsl:value-of select="normalize-space(concat($transform-relevant-part,' '))"/>
</xsl:when>
<!--Check if bin code not found and replace with respective miss ASE Code-->
<xsl:otherwise>
<xsl:variable name="transform-relevant-part" select="outlet:replace_str($relevant-part,$Miss_Bin_ASE_Code)" />
<xsl:value-of select="normalize-space(concat($transform-relevant-part,' '))"/>
</xsl:otherwise>
</xsl:choose>
<!--recursively look into the remainder string in the row and continue serch and replace till the end-->
<xsl:variable name="remainder" select="substring-after($string,$relevant-part)"/>
<xsl:call-template name="find-identify-substitute-bincodes">
<xsl:with-param name="string" select="$remainder"/>
</xsl:call-template>
</xsl:if>
</xsl:template>
<!--Template of Device Data Rows to be called in main Template-->
<xsl:template name="Devicedatarow">
<xsl:for-each select="$Device_Rows">
<xsl:variable name="Device_Row" select="current()"/>
<xsl:variable name="Device_Row_Position" select="position()"/>
<xsl:call-template name="find-identify-substitute-bincodes">
<xsl:with-param name="string" select="$Device_Row" />
</xsl:call-template>
<xsl:text>
</xsl:text>
</xsl:for-each>
</xsl:template>
<!--Main Text Template body-->
<xsl:template match="/|@*">
<xsl:text>Company Name: </xsl:text>
<xsl:value-of select="$Company_Name" />
<xsl:text>
</xsl:text>
<xsl:text>Device: </xsl:text>
<xsl:value-of select="$Device_Name" />
<xsl:text>
</xsl:text>
<xsl:text>MachineID :</xsl:text>
<xsl:value-of select="substring-after($Machine_Id, 'M/C Name :')" />
<xsl:text>
</xsl:text>
<xsl:text>Wafer ID: </xsl:text>
<xsl:value-of select="$Wafer_Id" />
<xsl:text>
</xsl:text>
<xsl:text>BIN 1: </xsl:text>
<xsl:value-of select="$Bin1_Count" />
<xsl:text>
</xsl:text>
<xsl:text>Total Die: </xsl:text>
<xsl:value-of select="$Total_Die_Nos" />
<xsl:text>
</xsl:text>
<xsl:text>Notch Direction: </xsl:text>
<xsl:value-of select="$Notch_Direction" />
<xsl:text>
</xsl:text>
<xsl:value-of select="concat('Column : ', $Column_Value, ', ' , ' Row : ', $Row_Value)" />
<xsl:text>
</xsl:text>
<xsl:text>Empty :</xsl:text>
<xsl:text>
</xsl:text>
<xsl:text>.............................................</xsl:text>
<xsl:text>
</xsl:text>
<xsl:call-template name="Devicedatarow">
</xsl:call-template>
</xsl:template>
</xsl:stylesheet>
Company Name: xxx
Device: EMAX-00
MachineID : AOI-404
Wafer ID: EMAXA191X0121
BIN 1: 1565
Total Die: 2386
Notch Direction: DOWN
Column : 59, Row : 41
Empty :
.............................................
0100100100100000100000010100XXX1101001111101111101011001000
01001011000001000000000000001000010011111001111101101100000
01111111101111100000000000000001001111111111111111111111000
01111111111010000000000000000001001111111111111111111111000
01111101111111111100000000000000111111111111111011101010000
01111100000000010000000000000000011011111111110001111110000
01111110111101000000000000000001001001101000100101001101000
01011110111111100001001111111011101011111010111111111111111
01111111111111010000000000000001001010010101011001011111000
00101101101111011000000000000001001001111110001001101110001
01111011011100010000000000000001001011110101010101111011110
01111111111111111101111111111011101111110111111111111111000
01111111101111111000010010001011011111111111111110111111110
01111111111111111001000000001000001111101011100110110111100
01111101111011111101111111110101111111111101111111111010001
11111111111011111101111111111111111101111101011111110001011
01110011101011011101111111111011111111011110011111111111100
01111011111111111011111111111111111111111101111111111111000
00111110111111110100111000000001001011000010010101101111000
0111000101100111010100000000XXX1011011000100010010010100000
XXXX11XXXXX10000010000001000XXX00000000000000001XXXXX10XXXX
0000000101000001000000000000XXX0000011100100000100100101000
00010000001000010001111001000011000000000000000000000101000
01011000100001010000000000000001000010000000010000000000100
11111111111111110111111001110011111111110000010111101101001
01111111111111110101101111110011011111100111110111111111110
11111111111111111001111101000111011111111100011111111111011
01111111011101111001111111111011111111111111111110111100001
01111111111111111001111111111111011111110110010001110101010
01111111111101110001110110111001111111111001111110111110001
01111111111111111011111111111111111111111111011110101111001
01111111111111110101011110100111001011010001011111111111111
01111111111111111101111111111011111111101110111111111111111
01111111111111111101111111110011111111111111111111111111111
01111111111111111001111111110011111111111111111111111111111
01111111111111111011111111110011111111111111101001111110111
01111111111111111101111111110010111101101111111011111111111
01101111111111111111111111111011111111111111011110111111001
00101111111111111001111111111011111110111111111111111100000
01111111111111111011111111111011111111110000000000000011111
1101101111111111100111111111XXX1111110001111111111111100010
public static void RunXslt1(string currentInputXML,string currentOutputTXT,string transformxsltPath)
{
var fileInUse = "XSLT";
try
{
Console.WriteLine(String.Format("starting XSLT process"));
// Load the style sheet.
var settings = new XsltSettings();
settings.EnableScript = true;
var xslt = new XslCompiledTransform();
xslt.Load(transformxsltPath, settings, null);
// Execute the transform and output the results to a file.
fileInUse = "XML";
xslt.Transform(currentInputXML, currentOutputTXT);
Console.WriteLine(String.Format("Fail occurs on transformation."));
}
catch (FileNotFoundException ex)
{
if (fileInUse.Equals("XSLT"))
{
Console.WriteLine("XSLT file not found.");
Environment.Exit(1);
}
else if (fileInUse.Equals("XML"))
{
Console.WriteLine("XML file not found.");
}
}
catch (Exception ex)
{
Console.WriteLine("Fail occurs on transformation. \nError : " + ex.Message);
}
}
xslt.Load(transformxsltPath, settings, null);
System.PlatformNotSupportedException: Compiling JScript/CSharp scripts is not supported
最佳答案
根据 dotnet corefx github 存储库,.NET Core 不支持该功能,目前还没有计划实现它。
更多详情请见here
不幸的是,目前看来坚持使用 .NET Framework 是您唯一的选择。
编辑
我确实喜欢挑战,所以我尝试了您的 XSLT,并找到了一个可以在 .NET Core 中运行的解决方案。
我们需要删除 JScript 以消除该错误。所以我们需要用 XSLT 方法替换您的 JScript 方法。
删除 replace-str
我环顾四周,找到了一个 XSLT 模板,可以为您进行字符串替换。这是answer I used
将模板添加到您的 XSLT
<xsl:template name="string-replace-all">
<xsl:param name="text" />
<xsl:param name="replace" />
<xsl:param name="by" />
<xsl:choose>
<xsl:when test="contains($text, $replace)">
<xsl:value-of select="substring-before($text,$replace)" />
<xsl:value-of select="$by" />
<xsl:call-template name="string-replace-all">
<xsl:with-param name="text" select="substring-after($text,$replace)" />
<xsl:with-param name="replace" select="$replace" />
<xsl:with-param name="by" select="$by" />
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$text" />
</xsl:otherwise>
</xsl:choose>
</xsl:template>
replace_str
使用答案中的示例调用
<xsl:variable name="transform-relevant-part">
<xsl:call-template name="string-replace-all">
<xsl:with-param name="text" select="$relevant-part" />
<xsl:with-param name="replace" select="$relevant-part" />
<xsl:with-param name="by" select="$Pass_Bin_ASE_Code" />
</xsl:call-template>
</xsl:variable>
when
条款不需要
identify_bin_type
查找任何匹配项的 JScript 函数,可以使用 XSLT
contains
为您查找匹配项的方法:
<xsl:when test="contains($Pass_Bin_Codes, $relevant-part)">
关于.net - platformnotsupportedexception : XSLCompiledTransform. Load(xslt) 未加载带有 </msxsl :script> in .net Core 2.1 目标框架的 xslt 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54201877/
我知道 source 和 . 做同样的事情,如果标题中的其他命令对不一样,我会感到惊讶事情(因为我正在运行 bash 作为我的 shell,$SHELL [script] 和 bash [script
我在尝试启动第一个 super 账本网络时遇到此错误: $ ./byfn.sh -m up Starting with channel 'mychannel' and CLI timeout of '
哪个更好用或者更方便: ... 或 ... 最佳答案 你真的需要类型属性吗?如果您使用的是 HTML5,则不会。否则,是的。 HTML 4.01 和 XHTML 1.0 指定了 type属性是必需的,
哪个更好用或者更方便: ... 或 ... 最佳答案 你真的需要类型属性吗?如果您使用的是 HTML5,则不会。否则,是的。 HTML 4.01 和 XHTML 1.0 指定了 type属性是必需的,
使用此语法包含外部 javascript 文件的正确术语是什么: 是否包含script.js?执行了吗?是链接的吗?是叫吗?我刚刚运行了该文件吗? 最佳答案 我认为这里最常见的术语是加载外部 Jav
这个问题在这里已经有了答案: 关闭 11 年前。 Possible Duplicate: Why don't self-closing script tags work? 我刚刚发现 HTML 中的
没什么可说的了。我尝试寻找这意味着什么,但找不到。该脚本几个月来一直运行良好,并在 12 小时前停止,没有对其进行任何更改。手动运行显示此错误。 最佳答案 我遇到了同样的问题,我只需从脚本编辑器中单击
我是 Apps 脚本的新手,正在尝试了解使用另一个帐户在一个帐户中运行/触发脚本的基础知识。需要注意的是:我想在访问脚本的用户而不是拥有脚本的用户的情况下运行脚本——以便将运行时间分配给访问的用户。
我是 Apps 脚本的新手,正在尝试了解使用另一个帐户在一个帐户中运行/触发脚本的基础知识。需要注意的是:我想在访问脚本的用户而不是拥有脚本的用户的情况下运行脚本——以便将运行时间分配给访问的用户。
我最近遇到这个问题,我试图在我的 HTML 页面中导入多个 js 文件,如下 - 但我面临的问题是,它只加载第一个 js 文件,而其余的 js 文件没有加载。我还检查了浏览器中的网络部分,剩下的
Duplicate Why don’t self-closing script tags work? 我正在编写一个 ASP.net 页面,它在 JS 文件中有一些用于客户端身份验证的 Javascr
为什么以下行在许多浏览器(mozilla、IE)中不起作用? 为什么一定要这样设置? 最近我将我的项目从 XHTML 转换为 HTML5,我遇到了一些小但令人不安的不兼容性。 最佳答案 虽然脚本元
这个问题已经有答案了: Why don't self-closing script elements work? (12 个回答) 已关闭 7 年前。 经过两天的 Angular 与 Webpack
我在任何地方都找不到这个问题的答案;甚至在官方文档中也没有。我已经尝试自己编写代码,但它不起作用,所以它可能无法实现。 在下面的示例中,您可以使用条件颜色进行绘图: //STACKED EMAs
我正在通过串行端口使用 Tera Term 在板上进行一些测试。最近我发现我可以在 Tera Term 中编写一些脚本,所以我一直在做研究以帮助自动化并使测试更容易一些。 我知道 Tera Term
数组在 PineScript 中不可用。 有解决办法吗?有没有人开发过代码,作为数组使用? 我需要它做什么?我想计算每条趋势线或 S/R 水平的触及次数。 最佳答案 要实现计数器,您可以创建一个变量,
有没有办法创建一个指标来反射(reflect) Pine Script 中股票的当前价格?我需要这个指标,因为我需要在蜡烛关闭之前输入订单(当有特定的交叉时)并且回测数据是逐条提供的。我认为一个指标可
我的网站有一个脚本,如果从移动设备查看页面,格式和样式会发生变化。在网站的 2/3 页上,该脚本效果很好,正如我想要的那样。但是在最后一个上,用于更改格式和样式的脚本运行但未完全运行。我已经尝试从我的
我是否正确,市场上没有直接替代此流程: 在 chrome 插件商店中发布未列出 直接将链接分享给可以使用脚本的人 特别是,这些机制允许我使用我在所有 google dsoc 上编写的脚本。 随着转向市
我有一个简单的 Google Script 发布为具有匿名访问权限的网络应用程序。代码可用 here网络应用程序可用 here . code.gs function doGet() { retur
我是一名优秀的程序员,十分优秀!