Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.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_Xml - Fatal编程技术网

Javascript 我想要XML元素中的原始区分大小写标记名。

Javascript 我想要XML元素中的原始区分大小写标记名。,javascript,jquery,xml,Javascript,Jquery,Xml,以下代码返回标记名的大写文本。我要原案 var xml = '<myElements type="AA" coID="A923"><myHouse>01</myHouse> <myCars>02</myCars><myWifeAndDog>03</myWifeAndDog></myElements>'; $(xml).children().each(function () { var xml

以下代码返回标记名的大写文本。我要原案

var xml = '<myElements type="AA" coID="A923"><myHouse>01</myHouse> <myCars>02</myCars><myWifeAndDog>03</myWifeAndDog></myElements>';

$(xml).children().each(function () {
    var xmlnode = $(this);
    console.log(this.tagName + " - " + xmlnode.text());
});
我希望它返回:

myHouse - 01
myCars- 02
myWifeAndDog- 03
我该怎么做?

已解决:按照Mike的建议使用DOM。但不确定是否所有浏览器都支持此功能

var xmlDoc;
if (window.DOMParser) {
    parser = new DOMParser();
    xmlDoc = parser.parseFromString(data.xmltext, "text/xml");
}
else // Internet Explorer
{
    xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
    xmlDoc.async = "false";
    xmlDoc.loadXML(data.xmltext);
}
console.log(xmlDoc);
console.log(xmlDoc.firstChild.children[0].tagName);

当您在
HTML
标记上使用
.tagName
时,它将始终以大写形式返回标记名,而当您在
XML
节点上使用
.tagName
时,则保留大小写

这是参考资料


他们说,在opera中,大小写保留在HTML标记上,您可以尝试…

当您在
HTML
标记上使用
.tagName
时,它将始终以大写形式返回您的标记名,就像您在
XML
节点上使用
.tagName
时,大小写被保留一样

这是参考资料


他们说,在opera中,案例保存在HTML标记上,您可以尝试一下…

可能您不应该使用jQuery来实现这一点,而应该使用DOM,如:

var parser = new DOMParser(),
    xmlStr = '<myElements type="A" coID="A92"><myHouse>1</myHouse></myElements>',
    dom = parser.parseFromString(xmlStr, "text/xml");
    console.log(dom.firstChild.tagName);
var parser=new DOMParser(),
xmlStr='1',
dom=parser.parseFromString(xmlStr,“text/xml”);
console.log(dom.firstChild.tagName);
这对于Firefox和Chrome来说是可以的。
IE有另一种读取和加载XML的方法,但最终类似。

可能你不应该使用jQuery,而应该使用DOM,比如:

var parser = new DOMParser(),
    xmlStr = '<myElements type="A" coID="A92"><myHouse>1</myHouse></myElements>',
    dom = parser.parseFromString(xmlStr, "text/xml");
    console.log(dom.firstChild.tagName);
var parser=new DOMParser(),
xmlStr='1',
dom=parser.parseFromString(xmlStr,“text/xml”);
console.log(dom.firstChild.tagName);
这对于Firefox和Chrome来说是可以的。 IE有另一种读取和加载XML的方法,但最终类似。

在将XML传递给
$()
函数之前,请尝试使用

var $xml = $.parseXML(xml);

$('myElements > *', $xml).each(function(){
    var xmlnode = $(this);
    console.log(this.tagName+" - "+xmlnode.text());
});
演示:

在将xml传递给
$()
函数之前,请尝试使用

var $xml = $.parseXML(xml);

$('myElements > *', $xml).each(function(){
    var xmlnode = $(this);
    console.log(this.tagName+" - "+xmlnode.text());
});

演示:

你肯定不能。不过,你可以做的一件事是创建一个displayName属性并使用
this.getAttribute(“displayName”)
@Joseph:我想你是对的。你肯定不能。但是你可以做的一件事是创建一个displayName属性并使用
this.getAttribute(“displayName”)
@Joseph:我想你是对的。我看到了引用。。。我在XML节点上使用它,它不保留大小写。。。那么正确的语法应该是什么呢?似乎jquery没有将
xml
字符串视为
xml
我看到了引用。。。我在XML节点上使用它,它不保留大小写。。。那么正确的语法是什么呢?jquery似乎没有将
xml
字符串视为
xml