我有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。
答案 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/>
会怎么样?)