我有一个包含不同语言的Unicode XML文件。我需要将文件中的所有非英文字母替换为空格。这是该文件的一个例子。通过XSLT 1.0如何用空格替换所有非英文字母(字符)xslt
<NameValue>
<EntityName>Kai</EntityName>
<OriginalScriptName>住吉</OriginalScriptName>
<OriginalScriptName>すみかい</OriginalScriptName>
<OriginalScriptName>スシカイ</OriginalScriptName>
</NameValue>
预期结果
<NameValue>
<EntityName>Kai</EntityName>
<OriginalScriptName> </OriginalScriptName>
<OriginalScriptName> </OriginalScriptName>
<OriginalScriptName> </OriginalScriptName>
</NameValue>
XSLT我试过了。
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:my-scripts="urn:my-scripts" exclude-result-prefixes="msxsl">
<xsl:output method="text"/>
<msxsl:script language="C#" implements-prefix="my-scripts"><![CDATA[
public string fReplaceNonASCIICharacters(string inStr)
{
return Regex.Replace(inStr," ", @"[^\x20-\x7E]");
}
]]></msxsl:script>
<xsl:template match="OriginalScriptName">
<xsl:value-of select="(my-scripts:fReplaceNonASCIICharacters(.))"/>
</xsl:template>
</xsl:stylesheet>
你尝试过什么到目前为止? –
为什么您的示例将每个8个空格替换为2个字符和4个字符?更重要的是,为什么你需要做这样的替换呢?丢弃所有真实信息似乎毫无意义,但保留其原始大小。 –
@ michael.hor257k多数民众赞成在一个错误,你的权利只有1对1替换是必需的。因为somettime的价值将凯姆斯像 Kai住スシイ 我仍然需要“凯”... –
user3724711