【发布时间】:2011-12-22 15:49:59
【问题描述】:
我无法开发这种逻辑,有人可以帮我解决这个问题吗?
我有一些重要的逻辑让我坚持下去。
我有一个完全动态的 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 <strong> LastName</strong></strong></p>
<p><strong><br /></strong></p>
<p> I am from company <strong> Company</strong> that is located in <strong> Country</strong>, <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> </p>
<p> </p>
现在我想在这个 HTML 中搜索 XML 中的每个细节元素,并想用 XML 中的元素值替换 HTML(名字、姓氏)中的文本
每个细节节点的节点。
之后,我会将格式化的 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,我必须提前修复节点...我想在运行时进行。
【问题讨论】:
-
这是对问题的一个很好的描述——请发布你到目前为止所尝试的内容,我们可以帮助解决一个问题——只是一个问题对这个网站来说是一个大问题。
-
我更喜欢 asp.net,无法在其中付出艰苦的努力。
-
如果描述性不足以理解,请告诉我,以便我更容易理解。
-
可以理解。这只是一个问题。聘请顾问来编写您的程序。这是一个回答问题的网站,而不是解决整个问题。你还没有尝试过。另外,我认为你应该学习一些关于 jQuery 的知识,这个任务在 jQuery 中变得更加容易......最多可能大约 20-40 行。
-
是的,发布您拥有的代码并描述您的问题。正如你所看到的,这让你无处可去。大多数关于 SO 的问题都会在不到一个小时(通常是 5-10 分钟)内得到回答。你的赏金在这里已经 2 天了。如果您想要结果,请采纳我的建议。
标签: javascript xml dom logic