Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/461.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/0/asp.net-core/3.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 在HTML页面中显示XML/JSON内容_Javascript_Xml_Perl - Fatal编程技术网

Javascript 在HTML页面中显示XML/JSON内容

Javascript 在HTML页面中显示XML/JSON内容,javascript,xml,perl,Javascript,Xml,Perl,我是新手,我有一个复选框树存在的应用程序。我想在选中某些复选框之前预先填充复选框的if user 为此,我从我的后端perl脚本中获取XML格式,如下所示。比如,在下面的XML中,只有0、43、44、45、46和50出现,所以在页面加载时只需要选中相应的复选框。我想在页面加载时显示那些选中的复选框。我如何才能做到这一点 我试了很多例子。但我并没有找到解决问题的方法。下面是我从perl脚本中获取的XML格式数据 <perldata> <hashref memory_addres

我是新手,我有一个复选框树存在的应用程序。我想在选中某些复选框之前预先填充复选框的if user

为此,我从我的后端perl脚本中获取XML格式,如下所示。比如,在下面的XML中,只有0、43、44、45、46和50出现,所以在页面加载时只需要选中相应的复选框。我想在页面加载时显示那些选中的复选框。我如何才能做到这一点

我试了很多例子。但我并没有找到解决问题的方法。下面是我从perl脚本中获取的XML格式数据

<perldata> 
<hashref memory_address="0x86f4880"> 
<item key="0">1</item> 
</hashref> 
</perldata> 
<perldata> 
<hashref memory_address="0x86f4880"> 
<item key="43">1</item> 
</hashref>  
</perldata> 
<perldata> 
<hashref memory_address="0x86f4880"> 
<item key="44">1</item> 
</hashref> 
</perldata> 
<perldata> 
<hashref memory_address="0x86f4880"> 
<item key="45">1</item> 
</hashref> 
</perldata> 
<perldata> 
<hashref memory_address="0x86f4880"> 
<item key="46">1</item> 
</hashref>  
</perldata> 
<perldata> 
<hashref memory_address="0x86f4880"> 
<item key="50">1</item> 
</hashref> 
</perldata>

1.
1.
1.
1.
1.
1.

缺少很多信息,但我会尽力帮助您。我假设您得到的是整个XML,并且没有使用jQuery或其他库。首先,XML缺少根节点。然后,您可以在JavaScript中解析XML并选中复选框,以便:

// if you are getting the XML from AJAX call
//var xmlDoc = xmlhttp.responseXML;

// if you are have the XML as String
var xmlStr = '<root><perldata> \
<hashref memory_address="0x86f4880"> \
<item key="0">1</item> \
</hashref> \
</perldata> \
<perldata> \
<hashref memory_address="0x86f4880"> \
<item key="43">1</item> \
</hashref>  \
</perldata> \
<perldata> \
<hashref memory_address="0x86f4880"> \
<item key="44">1</item> \
</hashref> \
</perldata> \
<perldata> \
<hashref memory_address="0x86f4880"> \
<item key="45">1</item> \
</hashref> \
</perldata> \
<perldata> \
<hashref memory_address="0x86f4880"> \
<item key="46">1</item> \
</hashref>  \
</perldata> \
<perldata> \
<hashref memory_address="0x86f4880"> \
<item key="50">1</item> \
</hashref> \
</perldata> \
</root>';
var xmlDoc;
if (window.DOMParser)
{
    var parser=new DOMParser();
    xmlDoc=parser.parseFromString(xmlStr,"text/xml");
}else // Internet Explorer
{
    xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
    xmlDoc.async=false;
    xmlDoc.loadXML(xmlStr); 
}

// get all the item tags from the XML
var itemTags = xmlDoc.getElementsByTagName("item");
// get all the items to be checked
var inputsToCheck = {}; 
for(var i = 0, len = itemTags.length; i < len; i++) {
    var itemTag = itemTags[i];
    inputsToCheck[itemTag.getAttribute("key")] = true;
}

// loop through the inputs and check the items to be checked
var inputs = document.getElementsByTagName("input");
for(var i = 0, len = inputs.length; i < len; i++) {
    var input = inputs[i];
    if(input.getAttribute("type") == "checkbox" && inputsToCheck[input.getAttribute("name")])
        input.setAttribute("checked", "true");
}
//如果您从AJAX调用获取XML
//var xmlDoc=xmlhttp.responseXML;
//如果需要,请将XML作为字符串
var xmlStr='1\
\
1 \
\
\
\
\
1 \
\
\
\
\
1 \
\
\
\
\
1 \
\
\
\
\
1 \
\
\
\
\
1 \
\
\
';
var-xmlDoc;
if(window.DOMParser)
{
var parser=新的DOMParser();
xmlDoc=parser.parseFromString(xmlStr,“text/xml”);
}else//internetexplorer
{
xmlDoc=新的ActiveXObject(“Microsoft.XMLDOM”);
xmlDoc.async=false;
loadXML(xmlStr);
}
//从XML中获取所有项标记
var itemTags=xmlDoc.getElementsByTagName(“项目”);
//获取所有要检查的项目
var inputsToCheck={};
对于(var i=0,len=itemTags.length;i
Hey cbayram……。感谢您的回复。如何在页面加载时调用此函数。。。。。?很抱歉这个愚蠢的问题,Mulla,你可以创建一个函数(我们称之为yourFunction)并从body标签调用它