我刚刚选择了一些操作XML文件的任务。我已经开始阅读一些基础知识,但我想我会问这里有多好的XSLT处理能够达到我需要它的速度。
我有一个大致具有以下结构的XML文件(在其主体中):
<p><no>12345</no>
<line>Lots of text here that I want to get rid of but need to keep the text in any <ref>tags like this</ref></line></p>
在一天结束时,文件被导入到Excel中,但是现在它很大并且处理它以删除任何<line>
标签而没有<ref>
是一个很长的工作,即使这样,文件也是如此仍然相当臃肿。如果可能的话,我想减少多余的文字。我认为我应该能够删除没有<line>
标记的任何<ref>
以及没有<p>
标记的任何<ref>
,但是是否可以删除实际文本?
答案 0 :(得分:0)
你可以试试这个:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:strip-space elements="*"/>
<!-- Delete all p or line element with no descendant ref -->
<xsl:template match="p[not(descendant::ref)]|line[not(descendant::ref)]"/>
<!-- Identical Transformation -->
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
答案 1 :(得分:0)
谢谢你们。我将查看此链接并查看我可以排序的内容。很高兴知道它可以在我继续努力之前发挥作用。