引发的异常:System.Xml.XPath.XPathException中的“System.Xml.xPathException”?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (205)

我从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>
提问于
用户回答回答于

你可以pid2623在XPath中将值视为字符串,但为此需要将其包装在引号中,例如xml_doc.SelectSingleNode("/Posts/post[@pid='" + postid + "']/title")xml_doc.SelectSingleNode(string.Format("/Posts/post[@pid='{0}']/title", postid))

扫码关注云+社区

领取腾讯云代金券