Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/389.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文件中添加新联系人时生成/写入ID(字母数字)_Javascript_Xml_Dom_Xslt - Fatal编程技术网

Javascript 如何在XML文件中添加新联系人时生成/写入ID(字母数字)

Javascript 如何在XML文件中添加新联系人时生成/写入ID(字母数字),javascript,xml,dom,xslt,Javascript,Xml,Dom,Xslt,在xml文件中创建新联系人时,是否可以生成字母数字ID。 在开始序列化时,我使用XSLT函数在xml文件中生成一个唯一的ID,所以我使用上面的函数来生成ID 我可以在XUL中使用JavaScript DOM在xml文件中添加新记录 function create() { var src = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\ <CONTACT>\ <Customer-ID>"+document.g

在xml文件中创建新联系人时,是否可以生成字母数字ID。 在开始序列化时,我使用XSLT函数
在xml文件中生成一个唯一的ID,所以我使用上面的函数来生成ID

我可以在XUL中使用JavaScript DOM在xml文件中添加新记录

function create()
{

var src = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\
<CONTACT>\
    <Customer-ID>"+document.getElementById("Customer-ID").value+"</Customer-ID>\
    <FirstName>"+document.getElementById("FirstName").value+"</FirstName>\
    <LastName>"+document.getElementById("LastName").value+"</LastName>\
    <email>"+document.getElementById("email").value+"</email>\
    <address>"+document.getElementById("address").value+"</address>\
    <state>"+document.getElementById("state").value+"</state>\
    <country>"+document.getElementById("country").value+"</country>\
</CONTACT>";

print(src);

var node = srcToNode(src);

    if (objXMLDoc.childNodes && objXMLDoc.childNodes.length) {

        for (var i = 0; i < objXMLDoc.childNodes.length; ++i) {
    if (objXMLDoc.childNodes.item(i).childNodes && objXMLDoc.childNodes.item(i).childNodes.length) {
         var x = objXMLDoc.childNodes.item(i).childNodes.length;
        var lastNode = objXMLDoc.childNodes.item(i).childNodes.item(x-2);

        }

      }

objXMLDoc.getElementsByTagName("CONTACT");//objXMLDoc.childNodes.item(0).lastChild;

objXMLDoc.appendChild(node); 
var serializer = new XMLSerializer();
var prettyString = serializer.serializeToString(objXMLDoc);
saveFile(prettyString, "C:\\contact.xml");
 }
} 
函数创建()
{
var src=”\
\
“+document.getElementById(“客户ID”).value+”\
“+document.getElementById(“FirstName”).value+”\
“+document.getElementById(“LastName”).value+”\
“+document.getElementById(“电子邮件”).value+”\
“+document.getElementById(“地址”).value+”\
“+document.getElementById(“state”).value+”\
“+document.getElementById(“国家”).value+”\
";
印刷(src);
var节点=srcToNode(src);
if(objXMLDoc.childNodes&&objXMLDoc.childNodes.length){
对于(变量i=0;i
上面的代码非常适合在我的xml文件中创建新记录。 如何在XML文件中创建新联系人的过程中生成唯一ID?而不是在文本框中手动输入ID

XML文件:

<?xml version="1.0" encoding="UTF-8"?>
<CONTACTS>

<CONTACT>
<Customer-ID>N65539</Customer-ID>
<FirstName>Ben</FirstName>
<LastName>Foden</LastName>
<email></email>
<address></address>
<state>AZ</state>
<country>US</country>
</CONTACT>

<CONTACT>
<Customer-ID>N65539</Customer-ID>
<FirstName>Nimal</FirstName>
<LastName>Anup</LastName>
<email>nimal.anup@gmail.com</email>
<address></address>
<state>TN</state>
<country>IN</country>
</CONTACT>


<CONTACTS>

N65539
本
福登
阿兹
我们
N65539
尼马尔
阿努普
尼马尔。anup@gmail.com
总氮
在里面

此XSLT按原样复制输入XML,并使用唯一ID填充所有
客户ID
元素:

<xsl:stylesheet version="1.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output indent="yes"/>
 <xsl:strip-space elements="*"/>

 <xsl:template match="node()|@*">
  <xsl:copy>
   <xsl:apply-templates select="node()|@*"/>
  </xsl:copy>
 </xsl:template>

 <xsl:template match="Customer-ID">
  <xsl:copy>
   <xsl.value-of select="generate-id()"/>
  </xsl:copy>
 </xsl:template>

</xsl:stylesheet>


您没有显示XSLT。
在哪里生成了-id()
失败?问题是什么?在我的例子中,当我通过XUL将新联系人附加到XML文件时,我想为XML文件中的Customer ID字段生成新联系人的唯一ID。我不想获取文本框值的值来手动执行ID。如何使用XSLT生成唯一ID?仅针对customer-id。是否可以以XML加载XSLT文件,或者是否可以通过其他方式生成唯一的id?谢谢。您不是已经使用了
生成id(.)
?这就是XSLT方法,你是对的。如何在XML文件中使用XSLT文件生成ID?创建新联系人时,如何实现此功能以在XML文件中生成ID?谢谢如果可能的话。。。我试图通过这个链接使用XUL中的XSLT处理器。Firefox中的JavaScript XSLT支持谢谢。谢谢。我正在使用以下函数//创建XSLT处理器实例var processor=new XSLTProcessor()//为XSLT transform var transform=document.implementation.createDocument(“,”,null)创建一个空XML文档//加载XSLT transform.onload=loadTransform;load(“file://C:/idgenerator.xslt”);在那里我无法加载文件。你知道为什么要创建一个空文档吗?您不想将转换应用到保存的XML文件吗?我下面的链接使用Firefox/XUL中的XSLT处理器处理XML文件。清单6应该是您的最终答案:您是对的。由于某种原因,我无法加载该文件。可能是目录问题。现在我有了进一步的想法。非常感谢您的支持和帮助:)。你总是对人很好。再次感谢你。