首页 新闻 搜索 专区 学院

xpath 问题

0
悬赏园豆:50 [已关闭问题]

xml文件

<?xml version="1.0" encoding="utf-8"?>
<ZZRK>
  <person>
      <xm>吴</xm>
    <bmch>无意</bmch>
    <xb>1</xb>
    <mz>17</mz>
    <sfzh>456</sfzh>
     </person>
  <person>
     <xm>吴</xm>
    <bmch>无意</bmch>
    <xb>1</xb>
    <mz>17</mz>
    <sfzh>456</sfzh>
  </person>
  <person>
    <xm>111</xm>
    <bmch>
    </bmch>
    <xb>0</xb>
    <mz>01</mz>
    <sfzh>1111111111111</sfzh>
  </person>
  <person>
    <id>20100901049i31</id>
    <xm>123</xm>
    <bmch>
    </bmch>
    <xb>0</xb>
    <mz>01</mz>
    <sfzh>1111111111111</sfzh>
     </person>
</ZZRK>

使用

 StringReader read = new StringReader(objXmlDoc.SelectSingleNode(@"/ZZRK/person[contains(xm,吴)]").OuterXml);
                ds.ReadXml(read);

为什么 dataset 中只有一条数据啊?

类似的查询也是一样的,只能出来一条数据

如何解决

 

 

 

问题补充: 用什么方法能得到多条记录呢? 感谢了,再次感谢 用 XmlNodeList list = objXmlDoc.SelectNodes(XmlPathNode); string xmlstring = ""; foreach (XmlNode node in list) { xmlstring = xmlstring+node.OuterXml; } StringReader read = new StringReader(xmlstring); ds.ReadXml(read); 不能模糊查询,中文也不行
无意的主页 无意 | 初学一级 | 园豆:170
提问于:2010-06-01 16:16
< >
分享
其他回答(3)
0

SelectSingleNode……Single……

Gray Zhang | 园豆:17610 (专家六级) | 2010-06-01 16:39
改成SelectNodes试试?
支持(0) 反对(0) Gray Zhang | 园豆:17610 (专家六级) | 2010-06-01 16:53
0
static void Main(string[] args)
{
GetXMLDate(Environment.CurrentDirectory
+ "\\demo2010.xml", "xm","");
Console.ReadKey();
}
private static void GetXMLDate(string xmlPath,string column, string filter)
{

DataSet dataSet
= new DataSet();
dataSet.ReadXml(xmlPath);
DataRow[] rows
= (dataSet.Tables[0].Select(string.Format(" {0}='{1}'",column,filter)));
foreach (DataRow dr in rows)
{
Console.WriteLine(dr[
"bmch"]);
}
}

 

 

Demo2010.xml内容:

<?xml version="1.0" encoding="utf-8" ?>
<ZZRK>
<person>
<xm></xm>
<bmch>无意</bmch>
<xb>1</xb>
<mz>17</mz>
<sfzh>456</sfzh>
</person>
<person>
<xm></xm>
<bmch>无意</bmch>
<xb>1</xb>
<mz>17</mz>
<sfzh>456</sfzh>
</person>
<person>
<xm>111</xm>
<bmch>
</bmch>
<xb>0</xb>
<mz>01</mz>
<sfzh>1111111111111</sfzh>
</person>
<person>
<id>20100901049i31</id>
<xm>123</xm>
<bmch>
</bmch>
<xb>0</xb>
<mz>01</mz>
<sfzh>1111111111111</sfzh>
</person>
</ZZRK>

 

邀月 | 园豆:25475 (高人七级) | 2010-06-01 21:14
0

SelectSingleNode当然只选择一个节点

大田 | 园豆:90 (初学一级) | 2010-06-02 08:32
0

二楼有源码,呵呵。

Astar | 园豆:40805 (高人七级) | 2010-06-02 09:06
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册