我有以下示例XML ..
http://app.listhub.com/syndication-docs/example.xml
<Listings xmlns="http://rets.org/xsd/Syndication/2012-03" xmlns:commons="http://rets.org/xsd/RETSCommons" xmlns:schemaLocation="http://rets.org/xsd/Syndication/2012-03/Syndication.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" listingsKey="2012-03-06T22:14:47" version="0.96" versionTimestamp="2012-02-07T03:00:00Z" xml:lang="en-us">
<Listing>
<Address>...</Address>
<ListPrice commons:isgSecurityClass="Public">234000</ListPrice>
<ListPriceLow commons:isgSecurityClass="Public">214000</ListPriceLow>
<AlternatePrices>...</AlternatePrices>
<ListingURL>http://www.somemls.com/lisings/1234567890</ListingURL>
<ProviderName>SomeMLS</ProviderName>
<ProviderURL>http://www.somemls.com</ProviderURL>
<ProviderCategory>MLS</ProviderCategory>
<LeadRoutingEmail>agent.lead.email@listhub.net</LeadRoutingEmail>
<Bedrooms>3</Bedrooms>
<Bathrooms>8</Bathrooms>
<PropertyType otherDescription="Ranch">Commercial</PropertyType>
<PropertySubType otherDescription="Ranch">Apartment</PropertySubType>
<ListingKey>3yd-SOMEMLS-1234567890</ListingKey>
<ListingCategory>Purchase</ListingCategory>
<ListingStatus>Active</ListingStatus>
<MarketingInformation>...</MarketingInformation>
<Photos>...</Photos>
<DiscloseAddress>true</DiscloseAddress>
<ListingDescription>...</ListingDescription>
<MlsId>SOMEMLS</MlsId>
<MlsName>Listing Exchange Group</MlsName>
<MlsNumber>1234567890</MlsNumber>
<LivingArea>2200</LivingArea>
<LotSize>130680.000000</LotSize>
<YearBuilt>1992</YearBuilt>
<ListingDate>2012-01-06</ListingDate>
<ListingTitle>Ranch, Ranch - Morgantown, WV</ListingTitle>
<FullBathrooms>2</FullBathrooms>
<ThreeQuarterBathrooms>3</ThreeQuarterBathrooms>
<HalfBathrooms>2</HalfBathrooms>
<OneQuarterBathrooms>1</OneQuarterBathrooms>
<ForeclosureStatus>REO - Bank Owned</ForeclosureStatus>
<ListingParticipants>...</ListingParticipants>
<VirtualTours>...</VirtualTours>
<Videos>...</Videos>
<Offices>...</Offices>
<Brokerage>...</Brokerage>
<Franchise>...</Franchise>
<Builder>...</Builder>
<Location>...</Location>
<OpenHouses>...</OpenHouses>
<Taxes>...</Taxes>
<Expenses>...</Expenses>
<DetailedCharacteristics>...</DetailedCharacteristics>
<ModificationTimestamp commons:isgSecurityClass="Public">2012-03-06T17:14:47- 05:00</ModificationTimestamp>
</Listing>
</Listings>
从这个XML文件中,我想使用XSLT删除特定节点,最后使用代理,经纪,列表,照片和参与者。
这意味着,我想删除列表节点的部分示例。
<Listing>
<MarketingInfomation>
<VirtualTour>
<Videos>
<Franchise>
<Taxes>
<Expenses>
我一直在搞乱这个XSLT试图获得它,但它不起作用..
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://rets.org/xsd/Syndication/2012-03"version="1.0">
<xsl:strip-space elements="*"/>
<xsl:output method="xml" indent="yes"/>
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="xmlns:Address"/>
</xsl:stylesheet>
答案 0 :(得分:1)
要使用XSLT“删除节点”,只需将除这些节点之外的所有内容复制到输出中。如果要丢弃<Address>
个节点及其内容,那么您的示例XSLT ALMOST会做正确的事情。您错过的是XML输入文档是命名空间。你需要像
<xsl:template match="syndication:Address"
xmlns:syndication="http://rets.org/xsd/Syndication/2012-03"/>
当然,将xmlns:syndication
命名空间绑定到<xsl:stylesheet>
元素会更加清晰,并让它继承,以便在整个样式表中根据需要提供前缀。