如何在C#中以编程方式更改XML实体声明

时间:2017-08-31 15:52:24

标签: c# xml

我想在xml下面以编程方式更改XML实体声明。 我想阅读它并更改ENTITY字符串" Custom / spaus.xml"到其他一些字符串或位置。

<!DOCTYPE MYFILE SYSTEM "../../../Data/dtd/Language.dtd"[
 <!ENTITY CustomMyDoc SYSTEM "Custom/MyDoc.xml">]>
<MYFILE>
   <File VALUE="SPAUS" DESC="This File is in custom" MEDIA="DEFAULT">
        <DETAIL VALUE="DISPLAY">Español</DETAIL>
        &CustomMyDoc;
        <KEY VALUE="ACCT_CH">Cuenta de Cheques</KEY>
        <KEY VALUE="ACCT_SV">Ahorros</KEY>
        <KEY VALUE="ACCT_OT">Otros</KEY>
     </FILE>
  </MYFILE> 

我尝试使用XmlTextReader读取xml并在XmlDocument中加载xml然后获取XmlEntity但是我无法更改所需的值。

 XmlDocument xmlDoc = new XmlDocument();
     xmlDoc.PreserveWhitespace = true;
     try
     {
        using (XmlTextReader myXmlTextReader = new XmlTextReader(xmlPath))
        {
           xmlDoc.Load(myXmlTextReader);
        }
     }
     catch (Exception e)
     {
        Exception ex = new Exception(String.Format("Error parsing XML file '{0}': {1}", xmlPath, e.Message), e);
        Logger.LogException(ex);
        return;
     }

     XmlNamedNodeMap nMap = xmlDoc.DocumentType.Entities;

     if (nMap.Count > 0)
     {
        XmlEntity node = (XmlEntity)nMap.Item(0);            
     }

现在我无法如何推进&#34; Custom \ Spaus.xml&#34;来自XmlEntity.SystemId;财产,但这是只读的。

0 个答案:

没有答案