.NET XML 串行化讲座
1,浅串行化:只串行化类的公共字段和属性
公共属性必须是可读且可写的
使用命名空间:using System.Xml.Serialization;
以Book类为例:
串行化模板:
public void SerializeIt(string filename)
{
XmlSerializer serializer = new XmlSerializer(typeof(Book));
StreamWriter writer = new StreamWriter(filename);
Book myBook = new Book();
serializer.Serialize(writer, myBook);
writer.Close();
}
反串行化模板:
public void DeserializeIt(string filename)
{
XmlSerializer serializer = new XmlSerializer(typeof(Book));
FileStream fs = new FileStream(filename, FileMode.Open);
Book myBook = (Book)serializer.Deserialize(fs);
fs.Close();
}
*使用XmlSerializer的类必须有一个不带参数的默认构造函数——在反串行化中使用
*序列化ArrayList类型字段X的特殊处理:
相关文档:
private ClassLoader xmlLoader = Thread.currentThread().getContextClassLoader();
private void parseXML(String resource){
resource = StringUtils.substring(resource,resource.indexOf(":")+1,resource.length());
InputStream inputStream = xmlLoader.getResourceAsStream(resou ......
Definition comparer class,
class ItemComparer : IEqualityComparer<XElement>
{
public bool Equals(XElement x, XElement y)
{
return x.Attribute("Name").Value == x.Attribute("Name").Value;
}
public int GetHashCode(XElement obj)
......
<?
XML DOM读取节点信息遇到问题总结:
1:NodeList: 使用节点的childNodes属性或者document对象的getElementsByTagName()方法,就会返回一个包含节点列表的NodeList
2: 在 XML DOM 中,节点的关系被定义为节点的属性:
· parentNode
· childNodes
· ......
public int createXMLFile(String filename) {
int returnValue = 0;
Document document = DocumentHelper.createDocument(); //生成Document,用于管理XML文档
Element booksElement = document.addElement("books"); //添加 ......
使用javascript创建Microsoft XML DOM,就可以完成这一工作.
// 装入数据.
var source = new ActiveXObject("Microsoft.XMLDOM");
source.async = false
source.load("history.xml");
// 装入样式表.
var stylesheet = new ActiveXObject("Microsoft.XMLDOM");
stylesheet.async = false
stylesheet.load( ......