如何创建一个循环来实现我的 XML 行我想要的次数
How to create an loop that will implement my XML lines the amount of times i want it
有什么方法可以制作任意大小的循环,它会遍历给定的数字并添加 XML 元素。代码的第一部分应该保持这样,下面的部分应该是动态的。
string name = "haus";
XDocument xmlDocument = new XDocument(
new XDeclaration("1.0", "utf-8", "yes"),
new XElement("Document",
new XElement("DocumentInfo",
new XElement("Created", "2022-02-09T13:52:07.8908726Z"),
new XElement("ExportSetting", "WithDefaults"),
new XElement("InstalledProducts",
new XElement("Product",
new XElement("DisplayName", "Totally Integrated Automation Portal"),
new XElement("DisplayVersion", "V16")
),
new XElement("OptionPackage",
new XElement("DisplayName", "TIA Portal Version Control Interface"),
new XElement("ObjectList",
new XElement("MultilingualText",
new XAttribute("ID", 1),
new XAttribute("CompositionName", "Comment"),
new XElement("ObjectList",
new XElement("MultilingualTextItem",
new XAttribute("ID", 2),
new XAttribute("CompositionName", "Items"),
new XElement("AttributeList",
new XElement("Culture", "de-DE"),
new XElement("Text")
)
)
)
),
// From here it should do this for the given number for example 10
new XElement("Hmi.TextGraphicList.TextListEntry",
new XAttribute("ID", 3),
new XAttribute("CompositionName", "Entries"),
new XElement("AttributeList",
new XElement("DefaultEntry", "false"),
new XElement("EntryType","SingleValue"),
new XElement("From","0"), // this number should go up by one after every example
new XElement ("To","0") // same with this
),
new XElement("ObjectList",
new XElement("MultilingualText",
new XAttribute("ID", 4),
new XAttribute("CompositionName", "Text"),
new XElement("ObjectList",
new XElement("MultilingualTextItem",
new XAttribute("ID", 5),
new XAttribute("CompositionName", "Items"),
new XElement("AttributeList",
new XElement("Culture","de-DE"),
new XElement("Text",
new XElement("body",
new XElement("p","kein 0")
)
)
)
)
)
)
)
)
)
)
)
)
)
);
xmlDocument.Save(@"C:\Program Files (x86)\Tools\VisualStudioProjects\CustomersDetails.xml");
使用 Enumerable.Range
和 Select
的组合生成重复的 XML 元素:
XDocument xmlDocument = new XDocument(
new XDeclaration("1.0", "utf-8", "yes"),
new XElement("Document",
new XElement("DocumentInfo",
new XElement("Created", "2022-02-09T13:52:07.8908726Z"),
new XElement("ExportSetting", "WithDefaults"),
new XElement("InstalledProducts",
new XElement("Product",
new XElement("DisplayName", "Totally Integrated Automation Portal"),
new XElement("DisplayVersion", "V16")
),
new XElement("OptionPackage",
new XElement("DisplayName", "TIA Portal Version Control Interface"),
new XElement("ObjectList",
new XElement("MultilingualText",
new XAttribute("ID", 1),
new XAttribute("CompositionName", "Comment"),
new XElement("ObjectList",
new XElement("MultilingualTextItem",
new XAttribute("ID", 2),
new XAttribute("CompositionName", "Items"),
new XElement("AttributeList",
new XElement("Culture", "de-DE"),
new XElement("Text")
)
)
)
),
Enumerable.Range(0, 10).Select(i => new XElement("Hmi.TextGraphicList.TextListEntry",
new XAttribute("ID", 3),
new XAttribute("CompositionName", "Entries"),
new XElement("AttributeList",
new XElement("DefaultEntry", "false"),
new XElement("EntryType","SingleValue"),
new XElement("From", i),
new XElement ("To", i)
),
new XElement("ObjectList",
new XElement("MultilingualText",
new XAttribute("ID", 4),
new XAttribute("CompositionName", "Text"),
new XElement("ObjectList",
new XElement("MultilingualTextItem",
new XAttribute("ID", 5),
new XAttribute("CompositionName", "Items"),
new XElement("AttributeList",
new XElement("Culture","de-DE"),
new XElement("Text",
new XElement("body",
new XElement("p","kein 0")
)
)
)
)
)
)
)
))
)
)
)
)
)
);
有什么方法可以制作任意大小的循环,它会遍历给定的数字并添加 XML 元素。代码的第一部分应该保持这样,下面的部分应该是动态的。
string name = "haus";
XDocument xmlDocument = new XDocument(
new XDeclaration("1.0", "utf-8", "yes"),
new XElement("Document",
new XElement("DocumentInfo",
new XElement("Created", "2022-02-09T13:52:07.8908726Z"),
new XElement("ExportSetting", "WithDefaults"),
new XElement("InstalledProducts",
new XElement("Product",
new XElement("DisplayName", "Totally Integrated Automation Portal"),
new XElement("DisplayVersion", "V16")
),
new XElement("OptionPackage",
new XElement("DisplayName", "TIA Portal Version Control Interface"),
new XElement("ObjectList",
new XElement("MultilingualText",
new XAttribute("ID", 1),
new XAttribute("CompositionName", "Comment"),
new XElement("ObjectList",
new XElement("MultilingualTextItem",
new XAttribute("ID", 2),
new XAttribute("CompositionName", "Items"),
new XElement("AttributeList",
new XElement("Culture", "de-DE"),
new XElement("Text")
)
)
)
),
// From here it should do this for the given number for example 10
new XElement("Hmi.TextGraphicList.TextListEntry",
new XAttribute("ID", 3),
new XAttribute("CompositionName", "Entries"),
new XElement("AttributeList",
new XElement("DefaultEntry", "false"),
new XElement("EntryType","SingleValue"),
new XElement("From","0"), // this number should go up by one after every example
new XElement ("To","0") // same with this
),
new XElement("ObjectList",
new XElement("MultilingualText",
new XAttribute("ID", 4),
new XAttribute("CompositionName", "Text"),
new XElement("ObjectList",
new XElement("MultilingualTextItem",
new XAttribute("ID", 5),
new XAttribute("CompositionName", "Items"),
new XElement("AttributeList",
new XElement("Culture","de-DE"),
new XElement("Text",
new XElement("body",
new XElement("p","kein 0")
)
)
)
)
)
)
)
)
)
)
)
)
)
);
xmlDocument.Save(@"C:\Program Files (x86)\Tools\VisualStudioProjects\CustomersDetails.xml");
使用 Enumerable.Range
和 Select
的组合生成重复的 XML 元素:
XDocument xmlDocument = new XDocument(
new XDeclaration("1.0", "utf-8", "yes"),
new XElement("Document",
new XElement("DocumentInfo",
new XElement("Created", "2022-02-09T13:52:07.8908726Z"),
new XElement("ExportSetting", "WithDefaults"),
new XElement("InstalledProducts",
new XElement("Product",
new XElement("DisplayName", "Totally Integrated Automation Portal"),
new XElement("DisplayVersion", "V16")
),
new XElement("OptionPackage",
new XElement("DisplayName", "TIA Portal Version Control Interface"),
new XElement("ObjectList",
new XElement("MultilingualText",
new XAttribute("ID", 1),
new XAttribute("CompositionName", "Comment"),
new XElement("ObjectList",
new XElement("MultilingualTextItem",
new XAttribute("ID", 2),
new XAttribute("CompositionName", "Items"),
new XElement("AttributeList",
new XElement("Culture", "de-DE"),
new XElement("Text")
)
)
)
),
Enumerable.Range(0, 10).Select(i => new XElement("Hmi.TextGraphicList.TextListEntry",
new XAttribute("ID", 3),
new XAttribute("CompositionName", "Entries"),
new XElement("AttributeList",
new XElement("DefaultEntry", "false"),
new XElement("EntryType","SingleValue"),
new XElement("From", i),
new XElement ("To", i)
),
new XElement("ObjectList",
new XElement("MultilingualText",
new XAttribute("ID", 4),
new XAttribute("CompositionName", "Text"),
new XElement("ObjectList",
new XElement("MultilingualTextItem",
new XAttribute("ID", 5),
new XAttribute("CompositionName", "Items"),
new XElement("AttributeList",
new XElement("Culture","de-DE"),
new XElement("Text",
new XElement("body",
new XElement("p","kein 0")
)
)
)
)
)
)
)
))
)
)
)
)
)
);