2010-05-07 2 views
0

XML 문서를 변환하는 중이지만 변형 후에는 DTD가 사라지고 XML 버전을 알려주는 첫 번째 줄이 사라집니다.XML 변형 후 DTD 유지

<?xml version="1.0"?> 

나는 XML 파일을 변환하는 데 사용하고있는 코드는 다음과 같습니다

// Load the style sheet. 
      var xslt = new XslCompiledTransform(); 
      xslt.Load("XSLTFile1.xslt"); 

      // Create the writer. 
      var settings = new XmlWriterSettings 
          { 
           Indent = true, 
           IndentChars = "\t", 
           ConformanceLevel = ConformanceLevel.Auto, 
           Encoding = Encoding.UTF8, 
          }; 

      var mydoc = XDocument.Load("Doc1.xml"); 

      var writer = XmlWriter.Create("Doc2.xml", settings); 

      // Execute the transform and output the results to a file. 
      if (writer != null) 
      { 
       xslt.Transform(mydoc.CreateReader(), writer); 
       writer.Close(); 
      } 

어떤 아이디어? XML 선언을 유지하기 위해

답변

0

, 당신은 XmlWriterSettingsOmitXmlDeclaration 것을이 false로 설정에 있는지 확인해야합니다 : DTD에 "멀리가는"에 관해서는

var settings = new XmlWriterSettings 
        { 
        Indent = true, 
        IndentChars = "\t", 
        ConformanceLevel = ConformanceLevel.Auto, 
        Encoding = Encoding.UTF8, 
        OmitXmlDeclaration = false, 
        }; 

- 문서를 변환하기 때문에, 변환 된 문서에 새 DTD 선언을 추가해야합니다.

xslxml 파일이 없으면 확실하게 알리기가 어렵습니다. 질문을 수정하고 추가 할 수 있습니까?

0

안녕하세요. 회신 해 주셔서 감사합니다. 내가 했어

writer.WriteDocType(mydoc.DocumentType.Name, mydoc.DocumentType.PublicId, mydoc.DocumentType.SystemId, mydoc.DocumentType.InternalSubset); 

그리고 그것은 효과가 있었다. 그래, 난 또한

OmitXmlDeclaration = false, 

감사

관련 문제