怎么获取xml文件中中元素的值(循环获取单个值)xml文件在贴内 大家帮帮忙我在线等

kangliang0121 2006-10-24 10:38:21
<?xml version="1.0" encoding="gb2312" standalone="no" ?><ccdH>
<ccdH_row>
<hz_no>chicsmart</hz_no>
<ck_no>SHTP</ck_no>
<d_no>SD000294</d_no>
<d_type>TC</d_type>
<dno_date>2005-01-31</dno_date>
</ccdH_row>
<ccdH_row>
<hz_no>chicsmart</hz_no>
<ck_no>SHTP</ck_no>
<d_no>SD000295</d_no>
<d_type>TC</d_type>
<dno_date>2005-01-31</dno_date>
</ccdH_row>
</ccdH>
...全文
285 25 打赏 收藏 举报
写回复
25 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
kangliang0121 2006-10-24
  • 打赏
  • 举报
回复
hehe
不好意思拉
cancerser 2006-10-24
  • 打赏
  • 举报
回复
给你把枪 你非用弹弓子.
kangliang0121 2006-10-24
  • 打赏
  • 举报
回复
XmlDocument xd = new XmlDocument();
xd.Load(File1.Value);
XmlNodeList xnl = xd.GetElementsByTagName("ccdH_row");
//XmlNodeList nodes = xd.GetElementsByTagName("ccdH_row");
sql = "insert into Header values(";
for (int i = 0; i < xnl.Count;i++ )
{
foreach (XmlNode xn in xnl[i].ChildNodes)
{
sql = xn.InnerText;
}


//sql = sql + "'" + xn.InnerText + "',";
}
//sql = sql.Replace("\t", "");
//sql = sql.Replace("\r", "");
sql = sql + ")";
xnl = null;
kangliang0121 2006-10-24
  • 打赏
  • 举报
回复
谢了放分
min_1982 2006-10-24
  • 打赏
  • 举报
回复
可以,但是要麻烦点,你用一下其他的方法就行了
min_1982 2006-10-24
  • 打赏
  • 举报
回复
XmlDocument document = new XmlDocument();
document.LoadXml(xml数据);//可以是xml字符串或者文件 XmlElement xe = document.DocumentElement;
for( int i=0;i<xd.GetElementsByTagName("ccdH_row").Count;i++)
{
string s = xd.GetElementsByTagName("ccdH_row")[i].ChildNodes[0].InnerText
string s1 = xd.GetElementsByTagName("ccdH_row")[i].ChildNodes[1].InnerText
string s2 = xd.GetElementsByTagName("ccdH_row")[i].ChildNodes[2].InnerText
string s3 = xd.GetElementsByTagName("ccdH_row")[i].ChildNodes[3].InnerText
string s4 = xd.GetElementsByTagName("ccdH_row")[i].ChildNodes[4].InnerText
}
blackant2 2006-10-24
  • 打赏
  • 举报
回复
xmldocument xd=new xmldocument();
xd.load(xmlfile);

xmlnodes headnode=xd.selectnodes("//Header");
foreach(Xmlnode xn in headnode){
//这儿是每个header节点的节点列表;
}


xmlnodes headnode=xd.selectnodes("//Detail");
foreach(Xmlnode xn in headnode){
//这儿是每个Detail节点的节点列表;
}
kangliang0121 2006-10-24
  • 打赏
  • 举报
回复
childNodes[0]能不能用不写死的
min_1982 2006-10-24
  • 打赏
  • 举报
回复
XmlDocument xd = new XmlDocument();
xd.Load(File1.Value);
for( int i=0;i<xd.GetElementsByTagName("ccdH_row")..Count;i++)
{
xd.GetElementsByTagName("ccdH_row")[i].childNodes[0].innertext
xd.GetElementsByTagName("ccdH_row")[i].childNodes[1].innertext
xd.GetElementsByTagName("ccdH_row")[i].childNodes[2].innertext
xd.GetElementsByTagName("ccdH_row")[i].childNodes[3].innertext
xd.GetElementsByTagName("ccdH_row")[i].childNodes[4].innertext
}
kangliang0121 2006-10-24
  • 打赏
  • 举报
回复
给点代码好吗
我的代码怎么就取不到《ccdH_row》下元素的值
cancerser 2006-10-24
  • 打赏
  • 举报
回复
能叫做 xml 本身就是规范格式, 你不信我 我也没办法
kangliang0121 2006-10-24
  • 打赏
  • 举报
回复
给点代码好吗
我怎么都取不到值的
XmlDocument xd = new XmlDocument();
xd.Load(File1.Value);
XmlNodeList xnl=xd.SelectNodes("//ccdH_row");
//XmlNodeList nodes = xd.GetElementsByTagName("ccdH_row");
sql = "insert into Header values(";
foreach(XmlNode xn in xnl)
{
sql = sql + "'" + xn.Value + "',";
}
//sql = sql.Replace("\t", "");
//sql = sql.Replace("\r", "");
sql = sql + ")";
xnl = null;
scow 2006-10-24
  • 打赏
  • 举报
回复
xmldocument.selectnodes("ccdH/ccdH_row");
scow 2006-10-24
  • 打赏
  • 举报
回复
xmlnodelist list = xmldocument.selectnodes("ccdH_row");
foreach(xmlnode node in list)
{
xmlnode subnode = node.selectsinglenode("hz_no");
console.writeline(subnode.innertext);
......
}
cancerser 2006-10-24
  • 打赏
  • 举报
回复
呵呵,是这样的
DataSet ds =new DataSet();
ds.ReadXml(@"yourXml"); 直接读进来 直接就是两个表 如果是第二个xml
太费劲了 有QQ没?
kangliang0121 2006-10-24
  • 打赏
  • 举报
回复
xml文件是这样的格式,我<Header>中的数据要插入Header表 ,<Detail>下的数据插入Detail表
kangliang0121 2006-10-24
  • 打赏
  • 举报
回复
<SCS_Inventory>

<Header>
  <TransactionType>SHTRANS</TransactionType>
  <ERPCompanyDistribution>30603</ERPCompanyDistribution>
  <ERPBranchDistribution>6029502</ERPBranchDistribution>
  <OrderNumERP>15323749</OrderNumERP>
  <OrderType>ST</OrderType>
<DateTransaction>2006-07-24T00:00:00.00Z</DateTransaction>
<UserID/>
<HeaderTransactionDescrip01/>
<HeaderTransactionDescrip02/>
<HeaderTransactionDescrip03/>
<HeaderTransactionDescrip04/>
<HeaderTransactionDescrip05/>
</Header>

<Detail>
<OrderLineNum>1000</OrderLineNum>
<OrderItemNum>10007623</OrderItemNum>
<OrderQuantity>5</OrderQuantity>
<ItemUOM/>
<ItemLot>60295020000123</ItemLot>
<ItemLotStatus>A</ItemLotStatus>
<ItemLotExpiration/>
<ReasonCode/>
<ItemCountryOfOrigin/>
<ShipCarrier/>
<ShipContainerID/>
<DateManufactured/>
<DetailTransactionDescrip01/>
<DetailTransactionDescrip02/>
<DetailTransactionDescrip03/>
<DetailTransactionDescrip04/>
<DetailTransactionDescrip05/>
</Detail>

<Detail>
<OrderLineNum>1000</OrderLineNum>
<OrderItemNum>10007623</OrderItemNum>
<OrderQuantity>5</OrderQuantity>
<ItemUOM/>
<ItemLot>60295020000123</ItemLot>
<ItemLotStatus>A</ItemLotStatus>
<ItemLotExpiration/>
<ReasonCode/>
<ItemCountryOfOrigin/>
<ShipCarrier/>
<ShipContainerID/>
<DateManufactured/>
<DetailTransactionDescrip01/>
<DetailTransactionDescrip02/>
<DetailTransactionDescrip03/>
<DetailTransactionDescrip04/>
<DetailTransactionDescrip05/>
</Detail>

<Detail>
<OrderLineNum>1000</OrderLineNum>
<OrderItemNum>10007623</OrderItemNum>
<OrderQuantity>5</OrderQuantity>
<ItemUOM/>
<ItemLot>60295020000123</ItemLot>
<ItemLotStatus>A</ItemLotStatus>
<ItemLotExpiration/>
<ReasonCode/>
<ItemCountryOfOrigin/>
<ShipCarrier/>
<ShipContainerID/>
<DateManufactured/>
<DetailTransactionDescrip01/>
<DetailTransactionDescrip02/>
<DetailTransactionDescrip03/>
<DetailTransactionDescrip04/>
<DetailTransactionDescrip05/>
</Detail>

</SCS_Inventory>
kangliang0121 2006-10-24
  • 打赏
  • 举报
回复
我要取到<ccdH_row> 下的每个元素的值要用循环取到每个值
我就要用这样的方法取的不能用ds.ReadXml(@"yourXml");xml不规则

cancerser 2006-10-24
  • 打赏
  • 举报
回复
DataSet ds =new DataSet();
ds.ReadXml(@"yourXml");
DataTable dt=ds.Tables[0];
---
你试没?
dt里的两行就是 那两组值啊
kangliang0121 2006-10-24
  • 打赏
  • 举报
回复

<hz_no>chicsmart</hz_no>
<ck_no>SHTP</ck_no>
<d_no>SD000294</d_no>
<d_type>TC</d_type>
<dno_date>2005-01-31</dno_date>
</ccdH_row>
我要取到<ccdH_row> 下的每个元素的值要用循环取到每个值
加载更多回复(5)
相关推荐
发帖
.NET社区

6.1w+

社区成员

.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
帖子事件
创建了帖子
2006-10-24 10:38
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。