为什么 Apache Commons StringEscapeUtils escapeXML10 在 groovy 中不起作用?
Why is Apache Commons StringEscapeUtils escapeXML10 not working in groovy?
我有一个简单的 groovy 脚本,我想在其中转义字符串 XML...
@Grapes(@Grab(group='org.apache.commons', module='commons-lang3',version='3.9'))
import org.apache.commons.lang3.StringEscapeUtils
def value = "[Apple MacBook Pro with Touch Bar - 15.4 & Core i7 - 16 GB RAM - 512 GB SSD]"
StringEscapeUtils.escapeXml11(value.toString())
根据 docs,看起来这个方法只需要一个字符串,那么为什么它给出这个异常...
No signature of method: static org.apache.commons.lang3.StringEscapeUtils.escapeXml11() is applicable for argument types: (String) values: [[Apple MacBook Pro with Touch Bar - 15.4 & Core i7 - 16 GB RAM - 512 GB SSD]]
我已经测试并收到相同的错误消息,但我将方法更改为 escapeXml11
现在可以使用了:
import org.apache.commons.lang3.StringEscapeUtils
class Program {
static void main(String[] args) {
testStringUtils()
}
private static void testStringUtils() {
def value = "[Apple MacBook Pro with Touch Bar - 15.4 & Core i7 - 16 GB RAM - 512 GB SSD]"
def sample = StringEscapeUtils.escapeXml11(value)
println(sample)
}
}
我使用的是 3.9 版:
compile group: 'org.apache.commons', name: 'commons-lang3', version: '3.9'
这是输出:
> Task :Program.main()
[Apple MacBook Pro with Touch Bar - 15.4 & Core i7 - 16 GB RAM - 512 GB SSD]
BUILD SUCCESSFUL in 1s
2 actionable tasks: 2 executed
17:24:42: Task execution finished 'Program.main()'.
您的代码中有一个 non-printable 字符:
Offset: 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
00000000: 53 74 72 69 6E 67 45 73 63 61 70 65 55 74 69 6C StringEscapeUtil
00000010: 73 2E 65 73 63 61 70 65 58 6D 6C 31 31 E2 80 8B s.escapeXml11b..
00000020: 28 76 61 6C 75 65 2E 74 6F 53 74 72 69 6E 67 28 (value.toString(
00000030: 29 29 0A )).
看到后Xml11
?
它可以很好地处理普通字符。
我有一个简单的 groovy 脚本,我想在其中转义字符串 XML...
@Grapes(@Grab(group='org.apache.commons', module='commons-lang3',version='3.9'))
import org.apache.commons.lang3.StringEscapeUtils
def value = "[Apple MacBook Pro with Touch Bar - 15.4 & Core i7 - 16 GB RAM - 512 GB SSD]"
StringEscapeUtils.escapeXml11(value.toString())
根据 docs,看起来这个方法只需要一个字符串,那么为什么它给出这个异常...
No signature of method: static org.apache.commons.lang3.StringEscapeUtils.escapeXml11() is applicable for argument types: (String) values: [[Apple MacBook Pro with Touch Bar - 15.4 & Core i7 - 16 GB RAM - 512 GB SSD]]
我已经测试并收到相同的错误消息,但我将方法更改为 escapeXml11
现在可以使用了:
import org.apache.commons.lang3.StringEscapeUtils
class Program {
static void main(String[] args) {
testStringUtils()
}
private static void testStringUtils() {
def value = "[Apple MacBook Pro with Touch Bar - 15.4 & Core i7 - 16 GB RAM - 512 GB SSD]"
def sample = StringEscapeUtils.escapeXml11(value)
println(sample)
}
}
我使用的是 3.9 版:
compile group: 'org.apache.commons', name: 'commons-lang3', version: '3.9'
这是输出:
> Task :Program.main()
[Apple MacBook Pro with Touch Bar - 15.4 & Core i7 - 16 GB RAM - 512 GB SSD]
BUILD SUCCESSFUL in 1s
2 actionable tasks: 2 executed
17:24:42: Task execution finished 'Program.main()'.
您的代码中有一个 non-printable 字符:
Offset: 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
00000000: 53 74 72 69 6E 67 45 73 63 61 70 65 55 74 69 6C StringEscapeUtil
00000010: 73 2E 65 73 63 61 70 65 58 6D 6C 31 31 E2 80 8B s.escapeXml11b..
00000020: 28 76 61 6C 75 65 2E 74 6F 53 74 72 69 6E 67 28 (value.toString(
00000030: 29 29 0A )).
看到后Xml11
?
它可以很好地处理普通字符。