大佬教程收集整理的这篇文章主要介绍了Javascript XML DOM Trickiness,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
<List DocTemplateUrl=\"\" defaultviewUrl=\"/Lists/Announcements/Allitems.aspx\" MobiledefaultviewUrl=\"\" ID=\"{Blahblahblahblah}\" ... />
@H_674_5@
节点本身的标签内没有\“ data \”;它保存的所有数据都是List标记的实际修饰符。
JavaScript的XML DOM参考几乎没有提供有关如何访问节点标签的修饰符的信息。 DOM参考中的所有方法和属性都涉及子节点以及如何访问节点的内容。当然,这是有道理的,因为XML应该是格式正确且漂亮的,但是那些知道XML片段来自何处的人已经在笑,因为可怕的,不直观的XML是直接从Microsoft SharePoint \'s Web输出的。服务API。 :)
无论如何,这不是重点。如果有人知道如何使用JavaScript的XML DOM访问XML节点的属性,我将不胜感激。 :D
编辑:问题可能在其他地方。我的意思是属性,而不是属性。那帮了一大堆。但是,它仍然告诉我所有XML DOM Node属性和方法都是未定义的。我认为我用来访问方法的实际引用是不确定的。这是我用来生成它的代码:
var xmlDoc = $.parseXML(xml);
$(xmlDoC).find(\'List\').each (
function ()
{
var ID = $(this).attributes.getnamedItem(\"ID\").value;
alert(ID);
});
@H_674_5@
其中“ xml”包含上面的列表片段,并且是SharePoint Web services的直接XML输出。
我以为该代码找到了所有类型为“ List”的节点并对其进行遍历。这不正确吗?
编辑:找到解决方案。显然,当您使用Jquery封装JavaScript XML DOM节点时,$(this)不会给您DOM元素,而是会给您一个包含DOM元素的Jquery对象。鉴于我上面使用的代码,有两种解决方法:
var ID = $(this).attr(\'ID \'); //这是Jquery的一种允许您访问封装的XML节点内的属性的方法-attr()不是标准JavaScript XML DOM的一部分,因为$(this)不是XML DOM元素。
var ID = $(this).get(0).attributes.getnamedItem(\“ ID \”)。value; //这是JavaScript的方式。在这里,我们调用get(0)从Jquery的封装对象返回实际的XML DOM节点;之后,我们可以调用所需的任何JavaScript XML DOM方法。我之所以使用这种方法,是因为我了解JavaScript XML DOM,并且我更愿意在GUI生成之外尽可能少地使用Jquery。
希望对其他遇到类似问题的人有所帮助。 :)
(哦,属性vs属性。很高兴知道。:D)
解决方法
您要引用的值称为属性。
假设您有对适当元素的引用:
var mobileDefaultViewUrl = element.getAttribute(\'MobileDefaultViewUrl\');
@H_674_5@
基于Mozilla的浏览器的更完整示例:
var xmlText = \"<root><element id=\'elementId\' attribute1=\'test1\' attribute2=\'test2\' /></root>\";
var parser=new DOMParser();
var dom=parser.parseFromString(xmlText,\"text/xml\");
var element = dom.getElementsByTagName(\'element\')[0];
console.log(element.getAttribute(\'attribute1\'));
@H_674_5@
在jQuery中:
var xml = \"<root><element id=\'elementId\' attribute1=\'test1\' attribute2=\'test2\' /></root>\",xmlDoc = $.parseXML( xml ),$xml = $( xmlDoc ),$element = $xml.find( \"element\" );
console.log($element.attr(\'attribute1\'));
@H_674_5@
,我认为您通过说财产来表示属性。如果您用它打谷歌,您@R_261_9381@很多更有用的答案。我发现了这个例子,例如如何使用Javascript访问xml属性?
。
答案之一描述了该解决方案,如下所示:
===
对于xml,您的JavaScript将是:
document.getElementByTagname(\"person\").attributes.getNamedItem(\"name\").value;
@H_674_5@
===
大佬总结
以上是大佬教程为你收集整理的Javascript XML DOM Trickiness全部内容,希望文章能够帮你解决Javascript XML DOM Trickiness所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。