aa.xml
<?xml version="1.0" encoding="GB2312" ?> 
<class> 
<学生 id="001">
<姓名>王五</姓名>
<身高>1.7</身高>
</学生> <学生 id="002">
<姓名>李四</姓名>
<身高>1.4</身高>
</学生> 
</class> ReadXml.java
import java.io.File; import javax.xml.parsers.DocumentBuilder; 
import javax.xml.parsers.DocumentBuilderFactory; import org.w3c.dom.Document; 
import org.w3c.dom.Element; 
import org.w3c.dom.NodeList; public class ReadXml
{
public static void main(String[] args)
{
try
{
DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
Document document = builder.parse(new File("aa.xml")); Element rootElement = document.getDocumentElement();
NodeList list = rootElement.getElementsByTagName("学生");
Element element = (Element)list.item(0);
System.out.println(element.getChildNodes().item(0).getNodeValue()); 
}
catch(Exception ex)
{
ex.printStackTrace();
}
}
}
执行到Document document = builder.parse(new File("aa.xml"));时就出错了,请大家帮忙!!!错误:
org.xml.sax.SAXParseException: "<?" で始まるコンテンツは、正当なマークアップではありません。文字 "?" (&#fffd;) は英字のはずです。
at org.apache.crimson.parser.Parser2.fatal(Parser2.java:3376)
at org.apache.crimson.parser.Parser2.fatal(Parser2.java:3370)
at org.apache.crimson.parser.Parser2.content(Parser2.java:1994)
at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1691)
at org.apache.crimson.parser.Parser2.parseInternal(Parser2.java:667)
at org.apache.crimson.parser.Parser2.parse(Parser2.java:337)
at org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:448)
at org.apache.crimson.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:185)
at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:151)
at ReadXml.main(ReadXml.java:17)

解决方案 »

  1.   

    可能是你的包不支持中文,
    用dom4j可以支持中文的
      

  2.   

    不知道为什么。就算过去了应该也不会打出“李四”的。
    element.getChildNodes().item(0).getNodeValue()
    觉得还得深一层。
    TextNode node  = element.getChildNodes().item(0).getChildNodes().item(0);
    node.getNodeValue() 应该才是吧?
      

  3.   

    查看一下你的aa.xml文件是编码的。是gbk或GB2312吗?
      

  4.   

    encoding="GB2312" 换成shift_jis
    节点换成英文
      

  5.   

    encoding="GB2312" 换成UTF-8,GB2312在日语中不支持,而你文中有中文
      

  6.   

    估计你的eclipse项目上用的是ms932,应该eclipse中设成GB2312也行