.Net 응용 프로그램에서 xml 파일을 필터링하려고합니다. 아래에 몇 가지 샘플 XML, 분명하지 적절한 XML,하지만 충분히 :-) 근처필터 xml in .Net with param
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Row A1="1" A2="AMS">
<Name>Ashley</Name>
<Team>Team B</Team>
<Date>3/25/2012</Date>
<Value>511681.15</Value>
</Row>
<Row A1="2" A2="AMS">
<Name>Kylie</Name>
<Team>Team A</Team>
<Date>9/28/2010</Date>
<Value>408438.47</Value>
</Row>
<Row A1="3" A2="AMS">
<Name>Gianna</Name>
<Team>Team B</Team>
<Date>40004</Date>
<Value>109709.22</Value>
</Row>
<Row A1="4" A2="AMS">
<Name>Chase</Name>
<Team>Team F</Team>
<Date>40152</Date>
<Value>279018.79</Value>
</Row>
스타일 시트 응용 프로그램에서 XsltArgumentList에 의해 설정된 PARAM 있습니다. param은 스타일 시트로 전달되지만 xml은 필터링하지 않습니다. ms 노드 집합 및 exsl 노드 집합을 사용하여 시도했지만 최상위 루트 만 반환했습니다. 아래의 스타일 시트 :
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:exsl="http://exslt.org/common" extension-element-prefixes="exsl" xmlns:msxsl="urn:schemas-microsoft-com:xslt">
<xsl:output method="xml" indent="yes" encoding="UTF-8" />
<xsl:decimal-format name="NN" NaN="0" />
<xsl:param name="Filter" />
<xsl:template match="/">
<Root>
<xsl:for-each select="exsl:node-set($Filter)">
<Row>
<xsl:attribute name="A1">
<xsl:value-of select="@A1" />
</xsl:attribute>
<xsl:attribute name="A2">
<xsl:value-of select="@A2" />
</xsl:attribute>
<Team>
<xsl:value-of select="Team"/>
</Team>
</Row>
</xsl:for-each>
</Root>
</xsl:template>
내가 XML 요소의 조합 중 하나를 사용 할 수있는 통과하려고 필터. 필터 현재 시도하고있다는
<xsl:param name="Filter" select="//Row[Team='Team A']" />
이하 그러나 이것은 단지 어떤 도움이나 포인터를 감상 할 수있다
<?xml version="1.0" encoding="utf-8"?>
<Root>
<Row A1="" A2="">
<Team></Team>
</Row>
</Root>
반환! 당신이 XLST 매개 변수 또는 변수에 XPath 식을 가질 수 없기 때문이 아닌 당신처럼 났을 것
감사
감사합니다. 그러나 이것은 작동하지 않았습니다. 이제 Navigator 객체를 사용하고 노드를 반복하여 데이터를 필터링하는 방법을 다시 설계했습니다. – GrahamCFNewc
select 문에 두 개의 작은 버그가있었습니다. –