访问XML Document Best Pratice
来源:互联网 发布:希尔伯特矩阵 正定 编辑:程序博客网 时间:2024/06/05 14:23
针对XML的Readonly属性,可以选择两种方式读取XML Document.
查询时,用XPathDocument,快速只读操作。
可写,用XMLDocument。
ObjectXXX el = ReadObject(fileName);
StringBuilder doc = XMLSerializeObject(el);
Navigator = GetXPathNavigator(doc.ToString(), true);
private ObjectXXX ReadObject(string filename)
{
IFormatter formatter = new BinaryFormatter();
Stream stream = new FileStream(filename, FileMode.Open, FileAccess.Read);
ObjectXXX el = (ObjectXXX )formatter.Deserialize(stream);
stream.Close();
stream.Dispose();
return el;
}
private StringBuilder XMLSerializeObject(object classObj)
{
XmlSerializer ser = new XmlSerializer(classObj.GetType());
StringBuilder doc = new StringBuilder();
TextWriter tw = new StringWriter(doc);
ser.Serialize(tw, classObj);
tw.Close();
tw.Dispose();
return doc;
}
public XPathNavigator GetXPathNavigator(string doc, bool isReadOnly)
{
XPathNavigator xpnav = null;
XmlTextReader xmlreader = new XmlTextReader(new StringReader(doc));
XmlTextReader xmlreader = new XmlTextReader(fileName);
try
{
if (isReadOnly)
{
XPathDocument xpdoc = new XPathDocument(xmlreader);
xpnav = xpdoc.CreateNavigator();
}
else
{
XmlDocument xdoc = new XmlDocument();
xdoc.Load(xmlreader);
xpnav = xdoc.CreateNavigator();
}
return xpnav;
}
finally
{
xmlreader.Close();
}
}
如果XMLDocument 有他自己的Namespace的话,则需要添加XMLNamespaceManager.
for example:
newbooks.xml
<?xml version='1.0'?>
<bookstore xmlns=http://test.com>
<book genre="novel" style="hardcover">
<title>The Handmaid's Tale</title>
<author>
<first-name>Margaret</first-name>
<last-name>Atwood</last-name>
</author>
<price>19.95</price>
</book>
<book genre="novel" style="other">
<title>The Poisonwood Bible</title>
<author>
<first-name>Barbara</first-name>
<last-name>Kingsolver</last-name>
</author>
<price>11.99</price>
</book>
</bookstore>
XmlDocument doc = new XmlDocument();
doc.Load("newbooks.xml");
// Create an XmlNamespaceManager to resolve the default namespace.
XmlNamespaceManager nsmgr = new XmlNamespaceManager(doc.NameTable);
nsmgr.AddNamespace("p", "urn:newbooks-schema");
// Select and display all book titles.
XmlNodeList nodeList;
XmlElement root = doc.DocumentElement;
nodeList = root.SelectNodes("/p:bookstore/p:book/p:title", nsmgr);
foreach (XmlNode title in nodeList) {
Console.WriteLine(title.InnerXml);
}
- 访问XML Document Best Pratice
- mercurial hg best pratice
- Software Configuration Management Best Pratice
- Englis Pratice
- document对象元素访问
- A Simple XML Document
- java,document,xml解释
- XML document models
- document解析xml示例
- document解析xml
- tomcat document xml
- document读取xml文件
- document to xml string
- XML DOM Document 对象
- xml转document问题
- java xml Document解析
- java 解析xml-document
- TopCoder Pratice this morning
- PHP缓存技术:memcache函数详解之一
- PHP缓存技术:memcache函数详解之二
- English Teacher3
- Java实现几种常见排序方法
- 买不起书的来下电子书吧,我搜集的,超全
- 访问XML Document Best Pratice
- php优化方法
- Weblogic集群概念和配置(一)
- scanf的返回值
- VC常用数据类型使用转换
- Weblogic集群概念和配置(二)
- Weblogic集群概念和配置(三)
- 百度“凤巢”一次事关生死的广告计划
- 操作系统的环境变量的解释