C# 如何使用xpath获取所有节点名
你好 我通常要做的是将xml转换为xhtml。我需要xhtml来创建epub 输入是xml。用户需要的是在程序中插入xml,输出是xhtml文件。布局合理 因此,我在下面的代码中试图做的是检查节点名。为了让程序知道要使用什么html标记 示例xml文件中有一个Title元素。所以在我的节目里。当节点为Title时,它将写入C# 如何使用xpath获取所有节点名,c#,xpath,C#,Xpath,你好 我通常要做的是将xml转换为xhtml。我需要xhtml来创建epub 输入是xml。用户需要的是在程序中插入xml,输出是xhtml文件。布局合理 因此,我在下面的代码中试图做的是检查节点名。为了让程序知道要使用什么html标记 示例xml文件中有一个Title元素。所以在我的节目里。当节点为Title时,它将写入 多谢各位。我希望我的问题是清楚的 我从microsoft获得了这个xml示例 <?xml version='1.0'?> <!-- This file
多谢各位。我希望我的问题是清楚的
我从microsoft获得了这个xml示例
<?xml version='1.0'?>
<!-- This file represents a fragment of a book store inventory database -->
<bookstore>
<book genre="autobiography">
<title>The Autobiography of Benjamin Franklin</title>
<author>
<first-name>Benjamin</first-name>
<last-name>Franklin</last-name>
</author>
<price>8.99</price>
</book>
<book genre="novel">
<title>The Confidence Man</title>
<author>
<first-name>Herman</first-name>
<last-name>Melville</last-name>
</author>
<price>11.99</price>
</book>
<book genre="philosophy">
<title>The Gorgias</title>
<author>
<name>Plato</name>
</author>
<price>9.99</price>
</book>
</bookstore>
如果希望获取给定Xml
的所有节点名,只需执行此操作即可
我更喜欢使用Linq
而不是Xml
XDocument doc = XDocument.Parse(input);
var nodenames = doc.Descendants() // Read all descendants
.Select(x=>x.Name.LocalName) // Look for node name.
.ToList();
现在您可以通过循环节点名
来访问元素
foreach(节点名中的变量名)
{
Console.WriteLine(name);//此处的访问名。
}
选中此项显然,您使用的是
XPathNavigator
。下面是演示其用法的代码
var doc = new XPathDocument("test.xml");
var nav = doc.CreateNavigator();
var iter = nav.Select("//*");
while (iter.MoveNext())
{
Console.WriteLine(iter.Current.LocalName);
}
xpath表达式检索所有子节点。为什么我有向下投票?这与什么有关?我如何使用它?我复制了代码,它说“System.Collections.Generic.List”不包含“Dump”的定义,并且没有扩展方法“Dump”不要在实际代码中使用
Dump
,使用简单的foreach循环遍历每个节点。
var doc = new XPathDocument("test.xml");
var nav = doc.CreateNavigator();
var iter = nav.Select("//*");
while (iter.MoveNext())
{
Console.WriteLine(iter.Current.LocalName);
}