我有一個包含不同語言的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