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条)

报告相同问题?

悬赏问题

  • ¥50 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥200 uniapp长期运行卡死问题解决
  • ¥15 latex怎么处理论文引理引用参考文献
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?