簡體   English   中英

有人可以用一些邏輯來幫助我嗎?

[英]Can somebody help me with some logic?

我無法發展這種邏輯,有人可以幫我解決這個問題嗎?

我有一些很大的邏輯可以讓我堅持下去。

我有一個完全動態的XML - 它的Detail節點可能會增加和減少數量。
細節節點的子節點數量也可以增加和減少。

<?xml version="1.0" encoding="utf-8" ?>
<body>
  <detail>
    <FirstName>t1 </FirstName>
    <LastName>t2</LastName>
    <Company>t3</Company>
    <Country>t4</Country>
    <Proviance>MP</Proviance>
  </detail>

  <detail>
    <FirstName>t5 </FirstName>
    <LastName>t6</LastName>
    <Company>t7</Company>
    <Country>t8</Country>
    <Proviance>t9</Proviance>
  </detail>

  <detail>
    <FirstName>t10 </FirstName>
    <LastName>t11</LastName>
    <Company>t12</Company>
    <Country>t13</Country>
    <Proviance>t14</Proviance>
  </detail>

</body>

我讀了這樣的XML:

 xmlhttp = new XMLHttpRequest();
        xmlhttp.open("GET", "/TinyEditor/PreviewBody.xml", true);
        xmlhttp.send();
        xmlDoc = xmlhttp.responseXML;

現在

每當我像這樣讀取DOM中的HTML內容時,每次都會有所不同:

      var x = tinyMCEPopup.editor.getContent().toString();
        alert(x);

the x gets the value like this (x can be different at different times) 

<p>Headline Dear <br /> <br /> <img src="Images/Untitled.png" alt="" /> <br /> <br />Dear <strong>FirstName&nbsp; <strong> LastName</strong></strong></p>
<p><strong><br /></strong></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; I am from company <strong> Company</strong> that is located in <strong> Country</strong>,&nbsp; <strong> Proviance</strong>, <strong> City.</strong></p>
<p><strong><br /></strong></p>
<p>Thanks</p>
<p><strong>FirstName</strong> <strong> LastName</strong> </p>
<p><strong><br /></strong></p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </p>

現在,我想在此HTML中搜索XML中的每個詳細信息元素,並希望將HTML(FirstName,LastName)中的文本替換為每個詳細信息節點的XML節點中的元素值。
之后,我將格式化的HTML內容重寫為DOM。 這是我無法發展的邏輯,有人可以幫我解決這個問題嗎?


我的努力:

<xsl:for-each select="Home/menu">
    <xsl:variable name="i"><xsl:value-of select="1+position()" /></xsl:variable>
    <script language="javascript">
        var id = '<xsl:value-of select="$i"/>';
        var firstname = '<xsl:value-of select="firstname"/>';
        var lastrname = '<xsl:value-of select="lastrname"/>';
        var firstname = '<xsl:value-of select="firstname"/>';
        var lastrname = '<xsl:value-of select="lastrname"/>';
        var firstname = '<xsl:value-of select="firstname"/>';
        var lastrname = '<xsl:value-of select="lastrname"/>';
        $('#CurrProg-'+id).html(functionname('FirstName',firstname));
        $('#CurrProg-'+id).html(functionname('LastName',firstname));
        $('#CurrProg-'+id).html(functionname('tagname',firstname));
        $('#CurrProg-'+id).html(functionname('tagname',firstname));
        $('#CurrProg-'+id).html(functionname('tagname',firstname));
        $('#CurrProg-'+id).html(functionname('tagname',firstname));
    </script>
</xsl:for-each>

和功能

    $(document).ready(function () {

        /* load all xsl and xml file */

        xmlDoc = $.xsl.load('XML/PreviewBody.xml');
        xslHome = $.xsl.load('XSL/Preview.xsl');

        $('#Page_Content').getTransform(
    xslHome,
    xmlDoc
);

    });

 function textReplace(actualtext, replacementtext) {
        var actualtext = new RegExp(actualtext, 'ig');
        document.getElementById('content').innerHTML = x.replace(actualtext, replacementtext);

    }

但它不適用於動態XML,我必須提前修復節點...我想在運行時制作它。

我更願意為此目的使用JQuery。 它非常方便用於此類任務,您無需為每個瀏覽器制作代碼。

http://www.vagrantradio.com/2009/10/how-to-parse-xml-using-jquery-and-ajax.html

您應該使用xslt生成內容而不是腳本

如果你還想做什么,我可以重新推薦以下內容:使用{FirstName}而不是FirstName因為你可以找到它更好( FirstName不會被替換)和btw丟棄你的xslt和循環麻煩xml與DOM

我也不認為你正在使用new RegExp()正確的檢查手冊

順便說一句,對於任何細節,但不是擁有你必須選擇1個細節元素並循環其兄弟姐妹

這是js中的替換代碼(不知道jquery(對不起))

function textReplace(actualtext, replacementtext) {
  document.getElementById('content').innerHTML = document.getElementById('content').innerHTML.replace(actualtext,replacementtext);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM