如何从xml文件读取€到Java
给我一个错误。我希望打印€
org.xml.sax.SAXParseException; systemId: file:/C:/Users/stikkoo/Desktop/product.xml; lineNumber: 9; columnNumber: 18; The character reference must end with the ';' delimiter.
at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:257)
我的XML代码段:
<?xml version="1.0" encoding="UTF-8"?>
<company>
<staff id="1001">
<firstname>yong</firstname>
<lastname>mook kim</lastname>
<nickname>mkyong</nickname>
<salary>100000</salary>
</staff>
<staff id="€;">
<firstname>low</firstname>
<lastname>yin fong</lastname>
<nickname>fong fong</nickname>
<salary>200000</salary>
</staff>
</company>
答案 0 :(得分:4)
首先,€不是有效的ASCII字符。真正的ASCII是7位字符集,比€符号的发明早了30多年。
接下来,€在LATIN-1(ISO / IEC 8859-1)中也不存在。如果需要8位ISO / IEC 8859字符集中的€,则需要使用ISO-8859-15。代码是0xA4
或十进制164
。
在Unicode中,€的代码点是U+20AC
。可以使用十六进制字符实体语法以XML形式编写; €
。
注意:
€
,但我更喜欢十六进制格式,因为它可以更好地与Unicode代码图表对齐。或者,您可以使用XML / HTML命名字符实体€
...,前提是您的XML解析器可以理解。
最后,由于您已将UTF-8指定为XML文档的编码,因此应该能够将原义的€字符粘贴到文档中...假设您使用一个支持UTF-8的编辑器。 (但这也有缺点...)
(在XML id
中可以使用的字符有限制,但可以使用€字符。)
作为记录,您试图在文档中使用的€
字符实体实际上是指非打印C1控制字符。
答案 1 :(得分:1)
嗨,Shreya !
我认为您的xml版本可能使用了错误的十六进制字符。
尝试€
或€
。
以下链接上有一长串文字,基本上描述了您的确切问题!
Link to solve all your problems:)
祝你好运!
Jesper