Chr*_*her 5 .net c# xml xslt xpath
我试图从XML文档及其子代中提取多个元素,但我无法在任何地方找到有用的示例... MSDN非常模糊.这是.Net中的c#
我已经动态创建了这个XML并将其转换为字符串.我一直在尝试使用带有NodeList的XmlNode来遍历foreach部分中的每个文件,但它无法正常工作.
这是一些示例XML:
<searchdoc>
<results>
<result no = "1">
<url>a.com</url>
<lastmodified>1/1/1</lastmodified>
<description>desc1</description>
<title>title1</title>
</result>
<result no = "2">
<url>b.com</url>
<lastmodified>2/2/2/</lastmodified>
<description>desc2</description>
<title>title2</title>
</result>
</results>
</searchdoc>
Run Code Online (Sandbox Code Playgroud)
我需要拉出每条完整的路径 <result>
有多种方法可以解决此问题,具体取决于您正在使用的.NET Framework版本:
通过XPathDocument类发出XPath查询,您可以轻松地从XML文档中获取已过滤的节点列表:
using (var reader = new StringReader("<Results><Result>...</Result></Results>"))
{
var document = new XPathDocument(reader);
var navigator = document.CreateNavigator();
var results = navigator.Select("//result");
while (results.MoveNext())
{
Console.WriteLine("{0}:{1}", results.Current.Name, results.Current.Value);
}
}
Run Code Online (Sandbox Code Playgroud)
您应该使用LINQ to XML来查询和过滤XML层次结构,因为它提供了比XPath语法更具表现力的API :
var document = XDocument.Parse("<Results><Result>...</Result></Results>");
var results = document.Elements("result");
foreach (var item in results)
{
Console.WriteLine("{0}:{1}", item.Name, item.Value);
}
Run Code Online (Sandbox Code Playgroud)
相关资源:
| 归档时间: |
|
| 查看次数: |
227 次 |
| 最近记录: |