//读取XML在NET下面已经变得非常的方便,一般借助于XmlReader这个类
//因为不方便使用编译器,我就在记事本上写一个方法来根据你的结果读
//取你提供的XML文档
class HSN
{
private string time;
public string Time
{
set {time = value;} //可以添加一个类似Test类中的GetTest()方法,最好不要提供set方法
get {return time;}
}
//省略没用到的,可以自己根据需要添加
private string sub;
public string Sub
{
set {sub = value;}
get {return sub;}
}
private string x_sn;
public string X_SN
{
set {x_sn = value;}
get {return x_sn;}
}
}
class SN
{
prviate string id;
public string ID
{
set {id = value;}
get {return id;}
}
private ArrayList hsnList = new ArrayList(); //可以自己写一个集合类
public ArrayList HSNList
{
get {return hsnList;}
}
}
class Test
{
private string pn_id;
public string PN_id
{
get {return pn_id;}
}
private ArrayList snList = new ArrayList();
public ArrayList SNList
{
get {return snList;}
}
private Test(){}
public static Test GetTest(string fileName)
{
Test test = null;
try
{
test = new Test();
XmlReader reader = XmlReaderCreate(fileName);
while(readerRead())
{
if(readerNodeType == XmlNodeTypeElemenet && readerNameToLower() == "pn")
{
testpn_id = readerGetAttribute("id");
}
else if(readerNodeType == XmlNodeTypeElemenet && readerNameToLower() == "sn")
{
SN sn = new SN();
snID = readerGetAttribute("id");
XmlReader subReader = readerReadSubtree();
while(subReaderRead())
{
if(sunReaderNodeType == XmlNodeTypeElemenet && readerNameToLower() == "hsn")
{
HSN hsn = new HSN();
hsnTime = subReaderGetAttribute("time");
hsnSub = subReaderGetAttribute("Sub");
hsnX_SN = subReaderReadString();
snHSNListAdd(hsn);
}
}
testSNListAdd(sn);
readerSkip();
}
}
}
catch
{
}
return test;
}
}
class Program
{
public static void Main()
{
Test test = TestGetTest(""/xml file/);
ConsoleWriteLine("PN_id/tSN_id/tHSN_time/tSub/tX_SN");
foreach(SN sn in testSNList)
{
foreach(HSN hsn in snHSNList)
{
ConsoleWriteLine(testPN_id + "/t" + snID + "/t" + hsnTime + "/t" + hsnSub + "/t" + hsnX_SN);
}
}
}
}
//正如上面所说,没有编译器,上面的类容在记事本上无法编译,不保证完全正确
//请补上必要的using语句
java中获取xml节点元素值 根据不同的处理xml方式不同而不同。 java中解析xml的方式:大体可以使用以下四种 ------------------------------------------------------------ DOM(Document Object Model) 为 XML 文档的已解析版本定义了一组接口
php是可以读取读取xml文件的。同时也可以遍历节点。网上有很多方法。你可以百度下。这里给你贴代码的话有很多代码。
举例: 有个名字为axml的文件 。内容为:
<xml version=”10″ encoding=”gb2312″>
<xml>
<list>111</list>
<list>2222</list>
<list>3333</list>
</xml>
读取:
<php
$xml = new DOMDocument();
$xml->load('axml');
foreach($xml->getElementsByTagName('list') as $list)
{
$value = $list->firstChild->nodeValue;
echo $value”<br />”;
}
>
输出为:111
222
333
//加载参数Xml
XmlDocument xmlParm = new XmlDocument();
xmlParmLoad(XMLString);
XmlNode xnParams = xmlParmSelectSingleNode("节点的位置");
string nodeValue = xnParamsValue;
给个例子你, 自己去套用就行给你
<xml version="10" encoding="utf-8"><Accounts>
<Account type="type1">
<code>100001</code>
<pass>123</pass>
<name>李四</name>
<money>100000000</money>
</Account>
<Account type="type2">
<code>100002</code>
<pass>123</pass>
<name>张三</name>
<money>100000</money>
</Account>
</Accounts>
java代码解析:
import javaio;/
xml文件解析
@author young
/
import javaxxmlparsersDocumentBuilder;
import javaxxmlparsersDocumentBuilderFactory;
import orgw3cdomDocument;
import orgw3cdomElement;
import orgw3cdomNode;
import orgw3cdomNodeList;
public class XmlExam {
public static void main(String args[]) {
Element element = null;
// 可以使用绝对路劲
File f = new File("xmlxml");
// documentBuilder为抽象不能直接实例化(将XML文件转换为DOM文件)
DocumentBuilder db = null;
DocumentBuilderFactory dbf = null;
try {
// 返回documentBuilderFactory对象
dbf = DocumentBuilderFactorynewInstance();
// 返回db对象用documentBuilderFatory对象获得返回documentBuildr对象
db = dbfnewDocumentBuilder();
// 得到一个DOM并返回给document对象
Document dt = dbparse(f);
// 得到一个elment根元素
element = dtgetDocumentElement();
// 获得根节点
Systemoutprintln("根元素:" + elementgetNodeName());
// 获得根元素下的子节点
NodeList childNodes = elementgetChildNodes();
// 遍历这些子节点
for (int i = 0; i < childNodesgetLength(); i++) {
// 获得每个对应位置i的结点
Node node1 = childNodesitem(i);
if ("Account"equals(node1getNodeName())) {
// 如果节点的名称为"Account",则输出Account元素属性type
Systemoutprintln("\r\n找到一篇账号 所属区域: "
+ node1getAttributes()getNamedItem("type")
getNodeValue() + " ");
// 获得<Accounts>下的节点
NodeList nodeDetail = node1getChildNodes();
// 遍历<Accounts>下的节点
for (int j = 0; j < nodeDetailgetLength(); j++) {
// 获得<Accounts>元素每一个节点
Node detail = nodeDetailitem(j);
if ("code"equals(detailgetNodeName())) // 输出code
Systemout
println("卡号: " + detailgetTextContent());
else if ("pass"equals(detailgetNodeName())) // 输出pass
Systemout
println("密码: " + detailgetTextContent());
else if ("name"equals(detailgetNodeName())) // 输出name
Systemout
println("姓名: " + detailgetTextContent());
else if ("money"equals(detailgetNodeName())) // 输出money
Systemout
println("余额: " + detailgetTextContent());
}
}
}
} catch (Exception e) {
eprintStackTrace();
}
}
}
以上就是关于C# 读取XML以及子节点全部的内容,包括:C# 读取XML以及子节点、如何在VBScript中获取XML文件中节点的内容、php 获取xml某个节点的所有内容等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)