为初学者提供复杂的XML和命名空间
本文关键字:XML 命名空间 复杂 初学者 | 更新日期: 2023-09-27 18:21:10
我从客户端收到了一个XML文件,我必须使用C#来复制它。我今天开始阅读有关XML文件的文章,我要去任何地方:/我之所以使用XMLDocument,是因为我读到它很有帮助,而且不那么复杂。也许你们可以帮助我理解如何获得表达式,比如:作为根元素。
<DeviceDescription>
<Types namespace="localTypes"/>
<Strings namespace="Unit">
<Language lang="de-DE"/>
<Language lang="en-EN"/>
</Strings>
<Strings namespace="localStrings_child_-1_1">
<Language lang="de-DE">
<String identifier="50">Drehmoment</String>
</Language>
<Language lang="en-EN">
<String identifier="50">Torque</String>
</Language>
</Strings>
<Files namespace="localFiles">
<Language lang="en">
<File fileref="local" identifier="NUM_ICO">
<LocalFile>Motor.ico</LocalFile>
</File>
</Language>
</Files>
我代码的一部分:
//Declaration of the XML Document
XmlDocument doc = new XmlDocument();
XmlNode declaration = doc.CreateXmlDeclaration("1.0", "UNICODE", null);
doc.AppendChild(declaration);
//Name of the Root
XmlNode rootNode = doc.CreateElement("DeviceDescription");
doc.AppendChild(rootNode);
//First Node "Types"
XmlNode typesNode = doc.CreateElement("Types");
XmlAttribute typesAttribute = doc.CreateAttribute("namespace");
typesAttribute.Value = "localTypes";
typesNode.Attributes.Append(typesAttribute);
rootelement.AppendChild(typesNode);
//Second Node "Strings"
XmlNode strings1Node = doc.CreateElement("Strings");
XmlAttribute strings1Attribute = doc.CreateAttribute("namespace");
strings1Attribute.Value = "Unit";
strings1Node.Attributes.Append(strings1Attribute);
rootelement.AppendChild(strings1Node);
//Third Node "Strings"
XmlNode stringsNode2 = doc.CreateElement("Strings");
...
//Third Node "Files"
XmlNode priceNode = doc.CreateElement("Files");
...
我知道这一切都错了,因为我无法编译它,也许有人可以帮助我。谢谢!
您可以运行此代码来生成您想要的项目,并查看控制台中内置的输出:
XmlDocument doc = new XmlDocument();
XmlDeclaration xmlDeclaration = doc.CreateXmlDeclaration("1.0", "UNICODE", null);
XmlElement root = doc.DocumentElement;
doc.InsertBefore(xmlDeclaration, root);
生成根元素的代码。。。
XmlElement rootelement = doc.CreateElement(string.Empty,
"DeviceDescription", string.Empty);
doc.AppendChild(rootelement);
XmlNode typesNode = doc.CreateElement("Types");
XmlAttribute typesAttribute = doc.CreateAttribute("namespace");
typesAttribute.Value = "localTypes";
typesNode.Attributes.Append(typesAttribute);
rootelement.AppendChild(typesNode);
显示字符串格式的代码。。。
Console.WriteLine(doc.OuterXml);
Console.WriteLine("Press any key to exit...");
Console.Read();
控制台输出:
<?xml version="1.0" encoding="UNICODE"?><DeviceDescription><Types namespace="loc
alTypes" /></DeviceDescription>
Press any key to exit...