【发布时间】:2020-04-09 15:52:11
【问题描述】:
我必须创建一个 XML 文档以便在其他软件中导入。导入过程不能修改,所以xml和他的结构是固定的。
我在visualstudio 中使用VB.net。我使用“Xml.Serialization.XmlSerializer”,过去对我来说效果很好。
对于这个主题,我通常将整个 xml 结构“重建”为带有“xml 修饰符”的类:
Public Class Xyz
<xmlattribute> property id as integer
<xmlelement> property name as string
<xmlelement> property comment as string
<xmlelement> property block as string
<xmlelement> property test as List(of Test)
Public Sub New()
test = new List(of Test)
End Sub
End Class
Public Class Test
<xmlelement> property name as string
End Class
然后我得到这样的 xml 部分:
<Xyz id=0>
<Name>Abc</Name>
<Comment>Abc</Comment>
<Block>Abc</Block>
<Test>
<Name>Abc</Name>
</Test>
<Test>
<Name>Def</Name>
</Test>
<Test>
<Name>Ghi</Name>
</Test>
</Xyz>
但是现在我在 xml 中有两个问题,我需要任何人的一些启发。首先,“块”有一个直接值(像以前一样)和一个像“id_block”这样的属性。其次,“测试”元素有一个序列号。导入必须如下所示:
<Xyz id=0>
<Name>Abc</Name>
<Comment>Abc</Comment>
<Block id_Block=5>Abc</Block>
<Test_0>
<Name>Abc</Name>
</Test_0>
<Test_1>
<Name>Def</Name>
</Test_1>
<Test_2>
<Name>Ghi</Name>
</Test_2>
</Xyz>
如何实现这两个主题?
【问题讨论】:
-
您向 Block 添加了一个属性。使用 XmlAttribute 和 XmlText 制作 Block 类
-
此外,您可以将 Test_1、Test_2、... Test_n 序列化为具有 XmlAnyElement 属性的 Object 属性。但是你有对象......
-
嘿 djv,您的第一条评论有效。你的第二个我不明白。 “测试”是一个单独的类。我有什么用,我可以修改名称?
标签: xml vb.net serialization xml-serialization xmlserializer