ASP.NET Core 6 MVC读取XML:如何提取tagline2标签的属性值
读取XML中tagline2标签的属性值解决方案
你需要获取的是<tagline2>标签的tagline2属性值,而非整个标签内容。针对当前实现,可通过以下两种方式修改:
修改现有XmlDocument实现
将获取OuterXml的逻辑替换为读取节点的tagline2属性值:
private string ReadXMLAnthemFile() { string footer = ""; XmlDocument xmlDocument = new XmlDocument(); xmlDocument.Load(Path.Combine(this.Environment.WebRootPath, "/img/TagLines.xml")); foreach (XmlNode node in xmlDocument.SelectNodes("taglines/tagline/tagline2")) { // 读取tagline2属性的值,添加空引用保护避免异常 footer = node.Attributes["tagline2"]?.Value ?? ""; } return footer; }
推荐使用LINQ to XML(现代简洁API)
在ASP.NET Core中,XDocument(LINQ to XML)是更易用的XML处理方案,代码更简洁:
using System.Xml.Linq; private string ReadXMLAnthemFile() { string xmlPath = Path.Combine(this.Environment.WebRootPath, "/img/TagLines.xml"); XDocument doc = XDocument.Load(xmlPath); // 定位第一个tagline2节点并获取属性值 string footer = doc.Descendants("tagline2") .FirstOrDefault()? .Attribute("tagline2")? .Value ?? ""; return footer; }
若需处理多个<tagline2>节点,可通过ToList()遍历收集所有属性值。
内容的提问来源于stack exchange,提问作者Diego
相关产品推荐
相关产品推荐

