动态显示XML内容

问题描述:

我目前正在研究一个与*主办的WebService一起工作的解决方案(因此没有机会改变这方面的任何内容;-))。动态显示XML内容

我正在使用的方法返回一个XML字符串 - 到目前为止这么好。

现在的问题是: 返回的XML可能有很多不同的结构,并且无法找出哪一个返回。没有XSD或其他任何可用....

示例伪代码:

string XmlFileContent = WebService.MethodGetXMLFile(filekey) 

的XmlFileContent例如可以是这样的:

<XML> 
<Field1>sometext</Field1> 
</XML> 

<Table Date ="20150302" Time = "0946"> 
<Row> 
<Field1>sometext</Field1> 
<Field2>2341.5145</Field2> 
</Row> 
</Table> 

或任何类型的XML你能想到的...

所以,问题是:是否有任何可能或工具来显示此XML以可接受的方式提供内容?格式化可以忽略,我只想以比显示纯XML文本更好的方式显示数据。

与WebService一起工作的客户端是用C#(.NET 4.5)编写的,显示XML数据的技术并不重要 - 任何有帮助的东西都是完美的。 (也许HTML或那种!?)

+0

是否绝对没有一致性?或者是内容字段始终被称为 ..等等? – 2015-03-02 09:00:17

+1

关于这个来自*的web服务没有api?通常服务器端提供xml结构,也许你需要问问他们。 – 2015-03-02 09:03:16

+0

他们提供了大约30种可以返回的xml文档,他们没有固定的字段,这30个类型中的每一个看起来都完全不同。 什么是杀手:你无法获得这30种类型返回的信息。你只知道:这是其中的一个,但没有机会说:它是一个“输入”文件 – CeOnSql 2015-03-02 09:14:27

只要第一个例子是一个错误(它不是一个正确的XML) 你可以尝试这样的事情,如果你只是想显示它。你将不得不添加一些格式,但它比普通的xml更友好。

 [Test] 
    public void test() 
    { 
     var a = @"<XML> 
     <Field1>sometext</Field1> 
     </XML>"; 

     var b = @"<Table Date ='20150302' Time = '0946'> 
     <Row> 
     <Field1>sometext</Field1> 
     <Field2>2341.5145</Field2> 
     </Row> 
     </Table>"; 

     XDocument doc=XDocument.Parse(b); 
     PrintAllNodes(doc.Descendants()); 
    } 

    private void PrintAllNodes(IEnumerable<XElement> nodes) 
    { 
     foreach (var node in nodes) 
     { 
      foreach (var xAttribute in node.Attributes()) 
      { 
       Console.WriteLine(xAttribute.Name + ": " + xAttribute.Value); 
      } 

       Console.WriteLine(node.Name + " " + node.Value); 
     } 

    } 
+0

感谢您的帮助,我会试一试! (抱歉,你当然是对的,第一个例子是错的 - 编辑!) – CeOnSql 2015-03-02 12:57:04