动态显示XML内容

本文关键字:内容 XML 动态显示 | 更新日期: 2024-09-25 19:35:37

我目前正在开发一个与政府托管的WebService配合使用的解决方案(因此没有机会更改这方面的任何内容;-))。

我正在使用的方法返回一个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一起工作的Client是用C#(.NET 4.5)编写的,显示XML数据的技术并不重要——任何有帮助的东西都可以执行。(也许是HTML或类似的!?)

动态显示XML内容

只要第一个示例是错误的(它不是正确的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);
        }
    }