C# 读取XML以及子节点

C# 读取XML以及子节点,第1张

//读取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某个节点的所有内容等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9690154.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存