N3xtchen 的数字花园

Search

Search IconIcon to open search

XML:无效字符报错

上次更新于 Feb 24, 2023 编辑源文件

如果出现如下报错:

1
PCDATA invalid Char {value}

说明你的文件中出现无效字符,是因为文件中包含控制字符1(非打印字符),value 就是对应的控制字符的十进制表示。

如果只是想替换掉2,执行下面命令:

1
sed -i 's/[\x00-\x08\x0b-\x0c\x0e-\x1f]//g' yourfile

如果想要知道替换是的哪个控制字符:

1
2
3
4
5
6
7
8
9
sed -i -E \
  -e 's/\x00/[NUL]/g;s/\x01/[SOH]/g;s/\x02/[STX]/g;s/\x03/[ETX]/g;' \
  -e 's/\x04/[EOT]/g;s/\x05/[ENQ]/g;s/\x06/[ACK]/g;s/\x07/[BEL]/g;' \
  -e 's/\x08/[BS]/g ;s/\x0A/[LF]/g;s/\x0B/[VT]/g;s/\x0C/[FF]/g;' \
  -e 's/\x0D/[CR]/g;s/\x0E/[SO]/g;s/\x0F/[SI]/g;s/\x10/[DLE]/g;' \
  -e 's/\x11/[DC1]/g;s/\x12/[DC2]/g;s/\x13/[DC3]/g;s/\x14/[DC4]/g;' \
  -e 's/\x15/[NAK]/g;s/\x16/[SYN]/g;s/\x17/[ETB]/g;s/\x18/[CAN]/g;' \
  -e 's/\x19/[EM]/g; s/\x1A/[SUB]/g;s/\x1B/[ESC]/g;s/\x1C/[FS]/g;' \
  -e 's/\x1D/[GS]/g;s/\x1E/[RS]/g;s/\x1F/[US]/g;s/\x7F/[DEL]/g' yourfile