Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/390.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.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
使用JavaScript删除XML名称空间的简单方法?_Javascript_Jquery_Html_Namespaces_Xml Namespaces - Fatal编程技术网

使用JavaScript删除XML名称空间的简单方法?

使用JavaScript删除XML名称空间的简单方法?,javascript,jquery,html,namespaces,xml-namespaces,Javascript,Jquery,Html,Namespaces,Xml Namespaces,例如,有没有一种简单的方法可以删除一个XML名称空间,但保持标记与jQuery或JavaScript相同?例如: <html:a href="#an-example" title="Go to the example">Just an Example</html:a> 只是一个例子 并将其更改为: <a href="#an-example" title="Go to the example">Just an Example</a> 在运行

例如,有没有一种简单的方法可以删除一个XML名称空间,但保持标记与jQuery或JavaScript相同?例如:

<html:a href="#an-example" title="Go to the example">Just an Example</html:a>
只是一个例子
并将其更改为:

<a href="#an-example" title="Go to the example">Just an Example</a>


在运行jQuery或JavaScript时,不知道其中的元素和/或属性?

这并不是一个真正的答案,但最好还是在服务器端处理这个问题。对于这种任务来说,JavaScript出现有点太晚了。。。事件可能已经附加到现有节点,并且您将处理每个元素两次

名称空间的用途是什么

如果这些是静态html文件,并且名称空间没有任何用途,我将使用正则表达式剥离所有名称空间


如果它们不是静态的,并且名称空间作为xml使用时有其用途,那么您可以进行一些服务器端检测,以使用正确的doctype和名称空间(如果合适)。

当您知道如何。。。只需使用\\来转义冒号,这样jquery解析引擎就不会将其解析为动作分隔符

$('html\\:a').each( function(){
  var temp = $(this).html();
  $(this).replaceWith("<a>"+temp+"</a>");
});
注意,我是那些只在FF中真正测试东西的可怕的人之一…

如果要替换的代码中没有
标记,您可以尝试()

container.innerHTML = container.innerHTML
                               .replace(/<(\/?)([^:>\s]*:)?([^>]+)>/g, "<$1$3>")
container.innerHTML=container.innerHTML
.replace(/\s]*:)?([^>]+)>/g,”)

说得清楚,我认为这是在作为text/html服务之后,因此被解析为html而不是XHTML,这是正确的吗。在这种情况下,这不是关于XML或名称空间的问题,而是关于将元素从一个节点名称转换为另一个节点名称的问题,方法是删除前面名称中的字符并包括冒号?是的。该文件是以HTML形式提供的,而不是XHTML(它的DOCTYPE为),从技术上讲,它不是XML名称空间,但我认为可能有一种方法可以将HTML解析为XML以去除XML名称空间,这是因为$('HTML:a')或带有HTML:a的getElementByTagName返回无法识别的表达式。谢谢,但最重要的是,我希望它做到这一点,但也添加了参数也…?对于这个特定的项目,我不能做它的服务器端不幸的。太棒了,你摇滚,这正是我需要的!对于我来说,这个XML
失败了,它看起来像是http:混淆了它,并返回以下内容:

container.innerHTML = container.innerHTML
                               .replace(/<(\/?)([^:>\s]*:)?([^>]+)>/g, "<$1$3>")