2015-04-09 3 views
0

У меня есть документ XML, возвращенный из веб-службы, который я преобразовываю в другой XML-документ, используя xsl schema. Я получаю сообщение об ошибке 'UriFormatException was unhandled. Invalid URI: The Uri string is too long.' Но я могу получить требуемый документ XML, если я сохраню SampleReportXML в папке temp и прочитал его. Любая помощь будет оценена по достоинству. Благодарю.UriFormatException был необработанным

 StringBuilder sb = new StringBuilder(); 
     XmlDocument doc = new XmlDocument(); 
     string inputXML =  @"C:\TEMP\SampleReport.xml"; 
     string transformXSL = @"C:\TEMP\TransformSchema.xsl"; 

     XslCompiledTransform xslt = new XslCompiledTransform(); 
     StringWriter writer = new StringWriter(); 
     xslt.Load(transformXSL); 

     XmlWriterSettings settings = new XmlWriterSettings(); 
     settings.Indent = false; 
     XmlWriter swriter = XmlWriter.Create(sb, settings); 
     xslt.Transform(inputXML, null, swriter); 
     sb.Append(writer.ToString()); 
     writer.Close(); 
     sb.Replace("<?xml version=\"1.0\" encoding=\"utf-16\"?>", ""); 
     TextReader textReader = new StringReader(sb.ToString()); 
     doc.Load(textReader); 
     return doc; 


     XmlDocument SampleReportXML = new XmlDocument(); 
     SampleReportXML = WS.getReport(100); //passing the parameter value to get the report XML doc from Web service 
     string inputXML = SampleReportXML.InnerXml.ToString(); 
     string transformXSL = @"C:\TEMP\TransformSchema.xsl"; 


     XslCompiledTransform xslt = new XslCompiledTransform(); 
     StringWriter writer = new StringWriter(); 
     xslt.Load(transformXSL); 

     XmlWriterSettings settings = new XmlWriterSettings(); 
     settings.Indent = false; 
     XmlWriter swriter = XmlWriter.Create(sb, settings); 
     xslt.Transform(inputXML, null, swriter); //getting error here 
     sb.Append(writer.ToString()); 
     writer.Close(); 
     sb.Replace("<?xml version=\"1.0\" encoding=\"utf-16\"?>", ""); 
     TextReader textReader = new StringReader(sb.ToString()); 
     doc.Load(textReader); 
     return doc; 

ответ

1

Я думаю, вы просто хотите передать SampleReportXML в качестве первого аргумента метода преобразования. В настоящее время вы сериализуете документ в строку, а затем передаете строку в метод, который ожидает Uri.

+0

Это сработало. Большое спасибо. – user3217334

Смежные вопросы