XML,xslt过滤文本

时间:2016-09-27 08:15:39

标签: xml xslt

我有xml

<?xml version="1.0" encoding="UTF-8"?> 
   <offer> 
      <products> 
         <product id="1"> 
            <description> 
               <long_desc>
                  <![CDATA[<div id="projector-longdescription-description">Lorem ipsum dolor sit amet.</div>
                  <div id="projector-longdescription-table">Lorem ipsum dolor sit amet.</div>]]>
               </long_desc>
            </description> 
         </product> 
      </products>
   </offer>

我希望得到它

   <?xml version="1.0" encoding="UTF-8"?> 
   <offer> 
      <products> 
         <product id="1"><div id="projector-longdescription-description">Lorem ipsum dolor sit amet.</div>
         </product> 
      </products>
   </offer>

所以我想过滤元素“long desc”只有div projector-longdescription-description。

2 个答案:

答案 0 :(得分:0)

CDATA包含任意字符数据,因此未解析=&gt;没有xpath到它内部的元素。

你&#34;可以&#34;尝试使用像substring-before等字符串操作。

答案 1 :(得分:0)

您可以使用http://xmlplease.com/charactermap

中显示的<xsl:value-of select="comment()" disable-output-escaping="yes"/>

你将得到两个div。

如果您只想保留一个div,那么最好在另一个XSL中重新分析输出。使用substring-before可能不安全(如果Lorem ipsum包含<div/>会怎么样?)