高分求解:用.NET中查询XML文档时,支不支持多条件查询,以及支不支持变量

penbamboo 2003-10-21 09:23:06
我有如下两个代码段,

1.一个XML文档,booksort.xml它将是我们查询的目标:
<?xml version="1.0"?>
<!-- a fragment of a book store inventory database -->
<bookstore xmlns:bk="urn:samples">
<book genre="novel" publicationdate="1997" bk:ISBN="1-861001-57-8">
<title>Pride And Prejudice</title>
<author>
<first-name>Jane</first-name>
<last-name>Austen</last-name>
</author>
<price>24.95</price>
</book>
<book genre="novel" publicationdate="1992" bk:ISBN="1-861002-30-1">
<title>The Handmaid's Tale</title>
<author>
<first-name>Margaret</first-name>
<last-name>Atwood</last-name>
</author>
<price>2395</price>
</book>
<book genre="novel" publicationdate="1992" bk:ISBN="1-861002-30-1">
<title>The Handmaid's Tale</title>
<author>
<first-name>Margaret</first-name>
<last-name>ood</last-name>
</author>
<price>1335</price>
</book>



<book genre="novel" publicationdate="1991" bk:ISBN="1-861001-57-6">
<title>Emma</title>
<author>
<first-name>Jane</first-name>
<last-name>Austen</last-name>
</author>
<price>19.95</price>
</book>
<book genre="novel" publicationdate="1982" bk:ISBN="1-861001-45-3">
<title>Sense and Sensibility</title>
<author>
<first-name>Jane</first-name>
<last-name>Austen</last-name>
</author>
<price>19.95</price>
</book>
</bookstore>
另一个是代码段,运行该代码段,可以达到修改XML文档中符合条件的节点
sample.cs
using System;
using System.IO;
using System.Xml;

public class Sample
{
public static void Main()
{

XmlDocument doc = new XmlDocument();
doc.Load("booksort.xml");

XmlNodeList nodeList;
XmlNode root = doc.DocumentElement;

nodeList=root.SelectNodes("descendant::book[author/first-name='Margaret']");

//Change the price on the books.
foreach (XmlNode book in nodeList)
{
book.LastChild.InnerText="15.95";
}

Console.WriteLine("Display the modified XML document....");
doc.Save(Console.Out);

}
}
但是在这个代码sample.cs中nodeList=root.SelectNodes("descendant::book[author/first-name='Margaret']");只有一个查询条件,我希望查询到的结点是不仅符合descendant::book[author/first-name='Margaret']"还要符合descendant::book[author/last-name='Atwood']". 这里我就不知道.NET是否支持多条件查询了,如果支持该如何写。
这里是以节点的多查询为基础,那么它又支不支持多属性的查询呢?
还有在它支不支持变量呢?比如在这个程序中first-name='Margaret',如果first-name会根据需求变化,而给descendant::book[author/first-name='变量']"传送一个变量。这能行吗?

如果这以上的三个功能都无法用这种查询方法实现的话,又该如何去实现它。
各位高手!这个问题似乎有难度!只有达到这样的目的,XML才能与数据库相抗衡,否则就无法查到满意的结果。
...全文
32 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
guoyan19811021 2003-10-21
  • 打赏
  • 举报
回复
http://www-900.cn.ibm.com/developerWorks/cn/education/xml/x-xquery/tutorial/index.html
kandyasp 2003-10-21
  • 打赏
  • 举报
回复
应该支持的,查询数据库和xml没多大区别的。有也估计是效率上的区别
LineCorner 2003-10-21
  • 打赏
  • 举报
回复
支持多条件查询,
你跟语言结合就支持变量了嘛!
penbamboo 2003-10-21
  • 打赏
  • 举报
回复
问题已经解决!各位得分啦!

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

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

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

试试用AI创作助手写篇文章吧