qlm11111 2017-11-21 02:08 采纳率: 50%
浏览 2214
已采纳

xml中实体引用如何解析

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE dmodule[
<!NOTATION svg PUBLIC "-//TEI//NOTATION W3C Scalable Vector Graphics Format//EN">
<!ENTITY AAA-DA10000-0-U8025-00514-A-04-1 SYSTEM "AAA-DA10000-0-U8025-00514-A-04-1.SVG" NDATA svg>
]>
 <dmodule>
<content>
<graphic  info="AAA-DA10000-0-U8025-00514-A-04-1"/>
</content>
</dmodule>

类似这种,xml中定义了实体引用,如何通过xmldocument或者别的方式读取出来。

  • 写回答

4条回答 默认 最新

  • threenewbee 2017-11-21 02:49
    关注
     import java.io.File;
    
    import javax.xml.parsers.DocumentBuilderFactory;
    
    import org.w3c.dom.Comment;
    import org.w3c.dom.Document;
    import org.w3c.dom.Element;
    import org.w3c.dom.EntityReference;
    import org.w3c.dom.Text;
    
    public class Main {
      public static void main(String[] argv) throws Exception {
        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
        factory.setValidating(true);
    
        factory.setExpandEntityReferences(false);
        Document doc = factory.newDocumentBuilder().parse(new File("filename")); //换成文件名
    
        Element root = doc.getDocumentElement();
        EntityReference eref = (EntityReference) root.getFirstChild();
    
        Comment comment = (Comment) eref.getFirstChild(); 
    
        Element elem = (Element) eref.getFirstChild().getNextSibling(); 
    
        Text text = (Text) eref.getLastChild(); 
      }
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 关于PLUS模型中kapaa值的问题
  • ¥15 关于博途V17进行仿真时无法建立连接问题
  • ¥15 请问下这个红框里面是什么文档或者记事本编辑器
  • ¥15 机器学习教材中的例题询问
  • ¥15 求.net core 几款免费的pdf编辑器
  • ¥15 为什么安装HCL 和virtualbox之后没有找到VirtualBoxHost-OnlyNetWork?
  • ¥15 C# P/Invoke的效率问题
  • ¥20 thinkphp适配人大金仓问题
  • ¥20 Oracle替换.dbf文件后无法连接,如何解决?(相关搜索:数据库|死循环)
  • ¥15 数据库数据成问号了,前台查询正常,数据库查询是?号