【发布时间】:2015-06-30 07:03:48
【问题描述】:
我需要将 XML 文件(遵循特定框架)转换为 OWL 文件(也具有 XML 格式)。要进行这种转换,我需要编写 C# 代码。
我无法遍历 XML 文件中的每个节点以将其映射到新文件中,而且我也不了解如何获取现有 XML 中的标签名称。
XML 示例是:
<ECClass name="Person">
<ECAttributes>
<ECObject ID="person1" size="20">
</ECObject>
</ECAttributes>
<ECAttributes>
</ECAttributes>
</ECClass>
我想把它映射成这样的:
<Class reference="Person">
<Property>
<Instance ID="person1">
</Instance>
</Property>
<Property>
</Property>
</Class>
这些只是示例,并不是真正的 XML。
主要问题是如何在不知道它有多少孩子的情况下遍历每个标签。我阅读了一些文章,但其中大多数仅针对特定级别。例如:
XmlNodeList nodes = root.SelectNodes("/ECClass");
foreach (XmlNode node in nodes)
{
}
我需要一次遍历每个标签,直到所有子标签都完成,以便我可以相应地映射新的 XMl。
提前感谢您的帮助。
【问题讨论】:
-
xdocument.root.Descendants() ?
-
为什么有人想在 C# 中这样做?这是 XSLT 的工作。
-
我不知道该怎么做。所以我在 C# 中尝试它。就像您指出的那样,@Henrik 还指出这可以使用 XSLT 来完成。我检查了一下,发现 XSLT 对这项工作真的很有帮助。非常感谢您的帮助。