我需要将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。
提前感谢您的帮助。
答案 0 :(得分:1)
解析c#中的每个节点,你可以使用递归。只需将此函数传递给根节点
即可public void findAllNodes(XmlNode node)
{
CreateNode(node.name);
foreach (XmlNode n in node.ChildNodes)
findAllNodes(n);
}
您必须创建一个新的xml文件。你可以使用这样的东西:
XmlDocument xmlDoc = new XmlDocument();
然后实现CreateNode函数。它应该是这样的:
public void CreateNode(string NodeName)
{
if(NodeName == "something")
{
XmlNode rootNode = xmlDoc.CreateElement("something_else");
}
.....
}