我想使用某种XML过滤,使用javascript w / jQuery。我对xslt还不是很熟悉。我已经看到该文档总是有XML文档和某种样式(XSL)。然后,结果以XHTML呈现。我真的只想获取一些XML,过滤(按节点名称,某些属性等)并生成该xml的(过滤/更小)版本。你认为xslt方法是最简单的吗?
提前致谢
答案 0 :(得分:2)
我真的只想抓取一些XML,过滤(按节点名称,一些 属性等)并生成该xml的(过滤/更小)版本。 你认为xslt方法是最简单的吗?
XSLT是一种专为转换树形结构输入而设计的语言。这就是为什么它可能是实现此类任务的最佳和最简单的原因。
以下是一个示例:
<nums>
<num>01</num>
<num>02</num>
<num>03</num>
<num>04</num>
<num>05</num>
<num>06</num>
<num>07</num>
<num>08</num>
<num>09</num>
<num>10</num>
</nums>
我们希望从这个XML文档中生成另一个具有相同结构和元素名称/内容的文档,但只包含原始文档中的num
个元素,其值为3的倍数。
以下是完成此操作的转换:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="num[not(. mod 3) = 0]"/>
</xsl:stylesheet>
答案 1 :(得分:1)
如果您想处理XML文档并返回另一个XML文档,那么XSLT方法可能是最好的。
如果您只想从XML中提取一些节点并显示它们,那么内置的javascript功能就足够了。
var title = xmlDoc.getElementsByTagName("title")[0].childNodes[0].nodeValue;
var lang = xmlDoc.getElementsByTagName("title")[0].getAttribute("lang");