2017-02-22 54 views
2

我有一個文件,如下所示。 我需要處理文件並根據元素值= CT複製節點。我對於如何開始或從哪裏開始感到失落。任何幫助,將不勝感激。嘗試根據元素值選擇節點

樣式表:

<?xml version="1.0" encoding="utf-8"?> 
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
     xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl" 
    > 
     <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/> 

     <xsl:template match="/"> 
     <feed> 
      <xsl:for-each select="web-export/run-date/pub-code/ad-type"> 
      <xsl:copy-of select="."/> 
      </xsl:for-each> 
     </feed> 
     </xsl:template> 
    </xsl:stylesheet> 

XML:

<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?> 
<web-export> 
<run-date>02/01/2017 
<pub-code>News 
<ad-type>Legal Liner 
<cat-code>Legals</cat-code> 
<class-code>Legal</class-code> 
<subclass-code>Briefings</subclass-code> 
<placement-description></placement-description> 
<position-description></position-description> 
<subclass3-code></subclass3-code> 
<subclass4-code></subclass4-code> 
<order-number>0000023456</order-number> 
<FieldedDataSet> 
<State>CT</State> 
</FieldedDataSet> 
<ad-content><![CDATA[Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque est. ]]></ad-content> 
</ad-type> 
</pub-code> 
<pub-code>News 
<ad-type>Legal Liner 
<cat-code>Legals</cat-code> 
<class-code>Legal</class-code> 
<subclass-code>Notices</subclass-code> 
<ad-number>0000</ad-number> 
<FieldedDataSet> 
<State>RI</State> 
</FieldedDataSet> 
<ad-content><![CDATA[Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque est. ]]></ad-content> 
</ad-type> 
</pub-code> 
</run-date> 
</web-export> 

回答

0

工作,如果任何子元素的具有價值= 「CT」

<xsl:template match="/"> 
    <feed> 
     <xsl:for-each select="web-export/run-date/pub-code/ad-type[descendant::FieldedDataSet/State[. = 'CT']]"> 
      <xsl:copy-of select="."/> 
     </xsl:for-each> 
    </feed> 
</xsl:template> 
+0

嗨Rupesh。感謝您及時的回覆。這對我有用。我將如何定位該特定元素 - ?可能還有其他包含字符串'CT'的元素。我需要確保只有該元素的條目成功。謝謝。, – geektampa

+0

@geektampa我已經爲你編輯了答案,現在它只能用於狀態匹配。 – Rupesh

+0

謝謝。作品完美。這將派上用場。謝謝你今天教我新東西。 – geektampa

相關問題