从 XML 中选择节点
本文关键字:节点 选择 XML | 更新日期: 2023-09-27 18:36:56
我是xml新手,有点困惑。
我有下一个 xml
<Data>
<seo>
<Title>
<ID>Site_Title</ID>
<name>A Media</name>
</Title>
<Keywords>
<ID>Keywords</ID>
<name>A, Media, keywords</name>
</Keywords>
<Site_Description>
<ID>Site_Description</ID>
<name>A Media site description</name>
</Site_Description>
</seo>
<main_slider>
<slider1>
<id></id>
<image_url></image_url>
<text></text>
<btn_text></btn_text>
<btn_link></btn_link>
</slider1>
<slider2>
<id></id>
<image_url></image_url>
<text></text>
<btn_text></btn_text>
<btn_link></btn_link>
</slider2>
<slider3>
<id></id>
<image_url></image_url>
<text></text>
<btn_text></btn_text>
<btn_link></btn_link>
</slider3>
<slider4>
<id></id>
<image_url></image_url>
<text></text>
<btn_text></btn_text>
<btn_link></btn_link>
</slider4>
<slider5>
<id></id>
<image_url></image_url>
<text></text>
<btn_text></btn_text>
<btn_link></btn_link>
</slider5>
</main_slider>
</Data>
母版页.cs
XmlDocument doc = new XmlDocument();
doc.Load(Path.Combine(Request.PhysicalApplicationPath, "App_Data/A_data.xml"));
好的,从这里我该如何继续? 假设我有下一个代码:
Page.Title = title_str; // Title set
Page.MetaDescription = description; // Description set
Page.MetaKeywords = keywords; // Keywords set
我如何从 xml 获取标题>名称节点? 和关键字>名称等等...
它只能通过"foreach"来完成? 无论如何,如何?
使用 Linq to XML:
var path = Path.Combine(Request.PhysicalApplicationPath, "App_Data/A_data.xml");
XDocument xdoc = XDocument.Load(path);
var seo = xdoc.Root.Element("seo");
Page.Title = (string)seo.Element("Title").Element("name");
Page.MetaDescription = (string)seo.Element("Site_Description").Element("name");
Page.MetaKeywords = (string)seo.Element("Keywords").Element("name");
// etc
此外,我建议您查看 LINQ to XML 示例,以了解将来如何使用它。
你也可以使用 xpath(如果可能缺少一些元素,这是更好的选择):
Page.Title = (string)xdoc.XPathSelectElement("Data/seo/Title/name");
像这样:
doc.Root.Element("seo").Element("Title").Element("name").Value;
doc.Root.Element("seo").Element("Keywords").Element("name").Value;
doc.Root.Element("seo").Element("Site_Description").Element("name").Value;
如果你想插入滑块,最好使用foreach,但是由于您要求seo值,这些值在xml中只出现一次,最好直接选择节点和值