C# *** 作XML 有以下几种方式:
1:使用XmlDocument相关类库和方法 *** 作xml
2:使用XDocument相关类库和方法 *** 作xml
3:使用XmlReader和XmlWriter相关类库和方法 *** 作xml
1:使用XmlDocument
XmlDocument doc = new XmlDocument();
docLoad("Customer2xml");
// XmlNodeList nodeList = docGetElementsByTagName("row");
XmlNodeList nodeList = docSelectNodes("/Table/row");
//读取属性+元素
foreach (XmlNode item in nodeList)
{
customerInfoAppId = itemAttributes["AppID"]Value;
customerInfoCustomerID = item["CustomerID"]InnerText;
}
2:使用XDocument
XDocument xdoc = XDocumentLoad("Customer2xml");
var custs = from customer in xdocDescendants("row")
select new
{//读取属性+元素
Version = customerAttribute("Version")Value,
CustomerID = customerElement("CustomerID")Value,
};
3:使用XmlReader
XmlReader reader = XmlReaderCreate("Customer2xml", settings);
//读取属性
while (readerRead())
{
if (readerNodeType == XmlNodeTypeElement)
{
switch (readerName)
{
case "row":
customerInfo = new CustomerInfo();
if (readerHasAttributes)
{
customerInfoAppId = readerGetAttribute("AppID");
customerInfoVersion = readerGetAttribute("Version");
}
break;
case "CustomerID":
customerInfoCustomerID = readerReadString();
break;
}
}
可以通过元素中的getText方法获取到节点的内容。
举例:
SAXReader sax = new SAXReader();
Document document = saxread(reader);//reader为定义的一个字符串,可以转换为xml
Element root = documentgetRootElement();//获取到根节点元素String str = root getText()//获取到节点的内容
用到的是dom4j-161jar,需要引入的包是:
import orgdom4jDocument;
import orgdom4jDocumentException;
import orgdom4jElement;
import orgdom4jioSAXReader;
备注:如果是多个子节点可以通过”Element xx=root element("code")“获取到子节点的元素,前提是需要知道子节点的名称。
static DataSet GetItems(string name)
{
// 得到满足条件的Items集合
XmlDocument doc = new XmlDocument();
docLoad("1xml");
string xPath = stringFormat(@"/menu/lables[@name='{0}']/item", name);
XmlNodeList itemArray = docSelectNodes(xPath);
// 生成新的xml对象
XmlDocument newDoc = new XmlDocument();
newDocAppendChild(newDocCreateElement("Root"));
foreach (XmlNode item in itemArray)
{
newDocFirstChildInnerXml += itemOuterXml;
}
// 转换成DataSet
DataSet ds = new DataSet("ItemsDataSet");
byte[] buffer = EncodingUTF8GetBytes(newDocOuterXml);
using (MemoryStream ms = new MemoryStream(buffer))
{
dsReadXml(ms);
}
return ds;
}
以上就是关于C# *** 作XML,如何获取指定节点值全部的内容,包括:C# *** 作XML,如何获取指定节点值、怎么获取xml指定节点的内容、.net 读取XML下的一个节点下的 所有ITEM节点等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)