问题描述:
单击加载按钮后,我想解析 XML 以自动填充新/编辑表单上的一些列(单行文本)。
背景:
XML 来自外部资源,而不是来自我的或任何其他 SP 站点/列表/项目。目前,用户在创建新项目或更新现有项目时必须检查外部资源的网页并将他们需要的信息复制/粘贴到新/编辑表单中。外部网站提供了一个 API,允许我以 XML 格式获取信息,因此我试图让我的网站用户更轻松地完成这项任务。这个想法是他们只需要输入一个用于识别外部资源的 6 位数字,然后可以将所需的信息放入新/编辑表单中,因此他们只需按保存即可提交/更新此列表中的项目.
到目前为止我所做的:
我只是一个 SharePoint 用户,不是开发人员,也不熟悉 JS。幸运的是,我可以找到一些文章作为指导和共享代码,让我实现一些功能,例如之前通过 jQuery.SPservice 实现的级联下拉列表。
我做了一些研究以使解析首先工作,因为下面的代码现在运行良好。但它仅将 XML 解析为我自己的 CEWP,该 CEWP 添加到新/编辑表单中,而不是添加到新/编辑表单上显示的列表列中。理想情况下,如果我知道列的 html 标记 ID,我应该能够完成这项工作。
但是在查看了“SPCascadeDropdowns”如何识别目标列之后,似乎它不是通过标签 ID 实现的,而是称为“StaticName”的东西,那么我在这里寻求帮助。
当前状态:
这是供您参考的图像和代码。
以下代码在添加在新/编辑表单顶部的 CEWP 中运行。
<script type="text/javascript" language="javascript" src="../../CEWP%20Libraries/jquery-1.12.4.min.js"></script>
<b>PR number:</b> PR-<input type="text" id="PRNumber" value="6 digits" maxlength="6" size="3"></input>
<input type="button" value="Load PR" onclick="loadPR($('#PRNumber').val());"></input>
<b>PR Title:</b> <p id="prTitle"></p></br>
<script type="text/javascript">
function loadXMLDoc(dname)
{
try //Internet Explorer
{
xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
}
catch(e)
{
try //Firefox, Mozilla, Opera, etc.
{
xmlDoc=document.implementation.createDocument("","",null);
}
catch(e) {alert(e.message)}
}
try
{
xmlDoc.async=false;
xmlDoc.load(dname);
return(xmlDoc);
}
catch(e) {alert(e.message)}
return(null);
}
function loadPR(PRNumber)
{
xmlDocPrInfo=loadXMLDoc("http://fakeurl"+PRNumber);
document.getElementById("prTitle").innerHTML = xmlDocPrInfo.getElementsByTagName("Title")[0].childNodes[0].nodeValue;
}
</script>