Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在C中从URL中删除锚#_C#_Xml_Html Parsing_Xml Parsing - Fatal编程技术网

C# 在C中从URL中删除锚#

C# 在C中从URL中删除锚#,c#,xml,html-parsing,xml-parsing,C#,Xml,Html Parsing,Xml Parsing,我试图从XML文档中提取一个src值,在我测试它的文档中,src是: 这会在尝试打开文件时产生问题。我不确定那个#(东西)后缀叫什么,所以我没能找到答案。如果可能的话,我想用一种简单的方法把它去掉。我想我可以编写一个函数来搜索一个#并删除后面的任何内容,但是如果文件名包含一个#符号(或者一个文件甚至可以有这个符号?) 谢谢 来自维基百科: #用于网页或其他资源的URL中,以引入“片段标识符”——定义该资源中位置的id。例如,在URL中,#(Other_uses)后面的部分是片段标识符,在这种情

我试图从XML文档中提取一个src值,在我测试它的文档中,src是:

这会在尝试打开文件时产生问题。我不确定那个#(东西)后缀叫什么,所以我没能找到答案。如果可能的话,我想用一种简单的方法把它去掉。我想我可以编写一个函数来搜索一个#并删除后面的任何内容,但是如果文件名包含一个#符号(或者一个文件甚至可以有这个符号?)

谢谢

来自维基百科:

#用于网页或其他资源的URL中,以引入“片段标识符”——定义该资源中位置的id。例如,在URL中,#(Other_uses)后面的部分是片段标识符,在这种情况下,表示应该移动显示器以显示标记为。。。在维基百科的HTML中:


#用于网页或其他资源的URL中,以引入“片段标识符”——定义该资源中位置的id。例如,在URL中,#(Other_uses)后面的部分是片段标识符,在这种情况下,表示应该移动显示器以显示标记为。。。在HTML中,假设URL不包含“#”,您应该可以

字符“#”不安全,应 始终进行编码,因为它在万维网和其他应用程序中使用 系统将URL与可能存在错误的片段/锚点标识符分隔开来 跟着它走

(搜索“#”或“不安全”)


因此,只需使用“#”作为拆分字符。这应该给你两个部分。在极不可能的情况下,它会提供更多,只需丢弃最后一个,然后重新加入其余的。

假设URL不包含“#”

字符“#”不安全,应 始终进行编码,因为它在万维网和其他应用程序中使用 系统将URL与可能存在错误的片段/锚点标识符分隔开来 跟着它走

(搜索“#”或“不安全”)


因此,只需使用“#”作为拆分字符。这应该给你两个部分。在极不可能的情况下,它会给出更多,只需丢弃最后一个,然后重新加入剩余的部分。

如果您在字符串中有src,则可以使用它

srcstring.Substring(0,srcstring.LastIndexOf("#"));

它将返回src而不返回#。如果您要检索的值都是web url,那么这应该是有效的,#是url中的一个书签,可以将您带到页面的特定部分。

如果您可以使用字符串中的src

srcstring.Substring(0,srcstring.LastIndexOf("#"));

它将返回src而不返回#。如果您要检索的值都是web url,那么这应该是有效的,#是url中的一个书签,可以将您带到页面的特定部分。

删除url的去锚定不安全。我的意思是,类似ajax的站点利用锚来跟踪上下文。比如gmail。如果您转到,则直接转到收件箱;如果转到,则转到所有邮件。
服务器可以根据锚点给出不同的响应,即使响应是文件。

删除url的解除锚点不安全。我的意思是,类似ajax的站点利用锚来跟踪上下文。比如gmail。如果您转到,则直接转到收件箱;如果转到,则转到所有邮件。
服务器可以根据锚点给出不同的响应,即使响应是一个文件。

您在这里不是有点反驳您自己的答案吗。。。是的,客户端可以根据锚呈现不同的内容,但服务器通常会给出相同的响应。这里最重要的部分是Ajax,您自己也提到过。而且,在我的例子中,这些都是本地XML文件,不会是实际的web请求。不过,在未来的项目中,最好记住这一点。@BurningIce,我的意思是锚定可能会对服务器响应产生副作用。当你转到时,gmail不会将你所有的邮件发回,然后浏览器会根据你的主播进行过滤(主播可能是“收件箱”、“全部”、“嗡嗡声”等)。是服务器根据完整的请求url以这样的方式响应。您在这里是否有点反驳您自己的答案。。。是的,客户端可以根据锚呈现不同的内容,但服务器通常会给出相同的响应。这里最重要的部分是Ajax,您自己也提到过。而且,在我的例子中,这些都是本地XML文件,不会是实际的web请求。不过,在未来的项目中,最好记住这一点。@BurningIce,我的意思是锚定可能会对服务器响应产生副作用。当你转到时,gmail不会将你所有的邮件发回,然后浏览器会根据你的主播进行过滤(主播可能是“收件箱”、“全部”、“嗡嗡声”等)。是服务器根据完整的请求url以这种方式响应。它被称为:srcstring.Substring(0,srcstring.LastIndexOf(“#”);它被称为:srcstring.Substring(0,srcstring.LastIndexOf(“#”);