我在C#中有字符串,其中包含以下内容
responseString = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<lab:labs xmlns:lab=\"http://njjhjhjh/ri/lab\">\n <lab uri=\"https://dsdsdsds.org/api/v2/labs/1\">\n <name>Administrative Lab</name>\n </lab>\n</lab:labs>\n"
我希望提取uri值https://dsdsdsds.org/api/v2/labs/1
并将其存储在字符串
string xmlString =responseString.Replace("lab:labs>", "labs>");
XmlDocument doc = new XmlDocument();
doc.LoadXml(xmlString);
XmlNodeList nodes = doc.SelectNodes("labs//lab");
if (nodes != null && nodes.Count > 0)
{
XmlNode node = nodes[0];
if (node.Attributes["uri"] != null)
{
string return_uri = node.Attributes["uri"].Value.ToString();
}
}
但是上面的代码会抛出{"The 'lab:labs' start tag on line 2 position 2 does not match the end tag of 'labs'. Line 6, position 3."}
之类的错误。是否有一种获得uri值的简单方法
答案 0 :(得分:0)
试试这个..
var doc = XDocument.Parse(responseString);
var result = doc.Descendants().First(d => d.Name=="lab").Attribute("uri").Value;
答案 1 :(得分:0)
这可能会为你做到这一点
var urival = xdoc.Descendants("lab").Attributes("uri");