我正在使用xmlserialize类创建一个xml文件,我得到的输出几乎就是我需要的。 这就是我得到的
<?xml version="1.0" encoding="UTF-8"?>
<pdf file-name="C:\Users\d.sassoli\Desktop\media\mergiato.pdf" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<document>
<document start-page="1">
<SheetChange>
<SheetChange sheet-type="A4" page-number="1"/>
<SheetChange sheet-type="A3" page-number="2"/>
</SheetChange>
</document>
</pdf>
这就是我想要的
<?xml version="1.0" encoding="UTF-8"?>
<root xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<pdf file-name="C:\Users\d.sassoli\Desktop\media\mergiato.pdf" >
<document start-page="1">
<SheetChange sheet-type="A4" page-number="1"/>
<SheetChange sheet-type="A3" page-number="2"/>
</pdf>
这些是我的类,我定义了我的xml的结构
[XmlRootAttribute("pdf", IsNullable = false)]
public class Pdf
{
private Pdf() { }
public static Pdf Builder()
{
Pdf pdf = new Pdf();
return pdf;
}
[XmlAttribute("file-name")]
public List<string> FileName { get; set; }
public List<document> document;
}
public class document
{
private document() { }
public static document Builder()
{
document doc = new document();
return doc;
}
[XmlAttribute("last-page")] public string LastPage;
[XmlAttribute("start-page")] public string StartPage;
public List<SheetChange> SheetChange;
}
public class SheetChange
{
private SheetChange() { }
public static SheetChange Builder()
{
SheetChange sheetChange = new SheetChange();
return sheetChange;
}
[XmlAttribute("page-number")]
public string PageNumber { get; set; }
[XmlAttribute("sheet-type")]
public string SheetType { get; set; }
}
我尝试摆弄xmlattribute,但没达到我想要的效果。
答案 0 :(得分:0)
您需要为您的班级实施IXMLSerializable
界面。然后重写ReadXML和WriteXML方法。
http://msdn.microsoft.com/en-us/library/system.xml.serialization.ixmlserializable(v=vs.110).aspx
您可以找到使用这些方法的一些示例。