XML(DTD)引用外部实体(将单个XML文件分为多个XML文件)

1 XML定义

 

在本例中应用外部实体主要因为XML文件太大,不容易维护,想按照硬件类型建立几个文件夹,

把整个XML文件物理分割为多个XML文件,但是在解析中仍然解析为一棵树。

 

<?xml version="1.0" encoding="UTF-8" standalone = "no" ?>

<!DOCTYPE HardwareDef SYSTEM "HardwareDef.dtd" [

 <!ENTITY XMLEntity1 SYSTEM "./HardwareDefCommon.xml">

 <!ENTITY XMLEntity2 SYSTEM "./Hardware/AA.xml">
 <!ENTITY XMLEntity2 SYSTEM "./Hardware/BB.xml">


]>

 

<HardwareDef >

 

    &XMLEntity1;
    &XMLEntity2;
    &XMLEntity3;

 

</HardwareDef >

 

2 以上解析本人在MSXML中完成。

 

解析的关键:

获取&XMLEntity1 的节点,通过pFirstEntityNodePtr->get_firstChild(&pNodePtr2)

进而获得在实体对应的文件中的子设备,

 

待解析完后, 再获取&XMLEntity2的解析,依次类推;

  TESTHR(xmlRoot->get_firstChild(&pFirstEntityNodePtr));// xmlRoot 为 <HardwareDef >节点
  pFirstEntityNodePtr->get_nodeName(&NodeName);
  TSTRING strNodeName(_com_util::ConvertBSTRToString(NodeName));
  if(TSTRING::npos != strNodeName.find("XMLEntity"))
  {
        TESTHR(pFirstEntityNodePtr->get_firstChild(&pNodePtr2));
  }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值