动态显示 XML 内容
Display XML Content dynamically
我目前正在研究一种解决方案,该解决方案可与政府托管的 WebService 一起使用(因此没有机会在这方面进行任何更改 ;-))。
我使用的方法 returns 一个 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 之类的!?)
只要第一个例子是错误的(不是正确的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);
}
}
我目前正在研究一种解决方案,该解决方案可与政府托管的 WebService 一起使用(因此没有机会在这方面进行任何更改 ;-))。
我使用的方法 returns 一个 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 之类的!?)
只要第一个例子是错误的(不是正确的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);
}
}