每当我尝试保存帖子时,都会出现这样的错误
抛出异常:System.Xml.dll中的'System.Xml.XPath.XPathException'
供您参考: 我正在从XSLT文件发送响应查询字符串
<td><a class="btn btn-default" href="EditPost.aspx?pid={@pid}">Edit</a> <a class="btn btn-danger" href="#">Delete</a></td>
接下来,一个Web表单将捕获查询字符串并从我的xml数据中读取选定的帖子。
protected void Update_btn_click(object sender, EventArgs e)
{
string new_title = newtitle.Text.ToString();
string new_description = update_des.Value.ToString();
string postid = Request.QueryString["pid"];
string docPath = @"~/Data/blog_post.xml";
XmlDocument xml_doc = new XmlDocument();
xml_doc.Load(Server.MapPath(docPath));
XmlNode elemList = xml_doc.SelectSingleNode("/Posts/post[@pid=" + postid + "]/title");
System.Diagnostics.Debug.WriteLine(elemList);
}
我的XML数据:
<Posts>
<post pid="pid2623">
<title>Test</title>
<description>Test</description>
<subtitle>Test</subtitle>
<date>7/29/2018 12:00:00 AM</date>
<author>est</author>
</post>
</Posts>
答案 0 :(得分:1)
您可以在XPath中将类似pid2623
的值视为字符串,但是为此您需要将其用引号引起来,例如xml_doc.SelectSingleNode("/Posts/post[@pid='" + postid + "']/title")
或xml_doc.SelectSingleNode(string.Format("/Posts/post[@pid='{0}']/title", postid))
。