昨天已经写了如何利用XSLT解析XML里的数据到select选项,今天将写如何利用条件判断语句,使自己希望的选项能在生成的select框中被选中:
rainer.xml
xml 代码
- <?xml version="1.0" encoding="utf-8"?>
- <?xml-stylesheet type="text/xsl" href="rainer.xsl"?>
- <List>
- <item>
- <id>1</id>
- <name>动感</name>
- </item>
- <item>
- <id>2</id>
- <name>地带</name>
- </item>
- <unit>2</unit>
- </List>
rainer.xsl:
xml 代码
- <?xml version="1.0" encoding="utf-8"?>
- <xsl:stylesheet version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
- <xsl:template match="/">
- <xsl:element name="select">
- <xsl:attribute name="name">Units</xsl:attribute>
- <xsl:for-each select="List/item">
- <xsl:if test="normalize-space(id/text())=normalize-space(//List/unit/text())">
- <xsl:element name="option">
- <xsl:attribute name="value"><xsl:value-of select="id"/></xsl:attribute>
- <xsl:attribute name="selected">selected</xsl:attribute>
- <xsl:value-of select="name"/>
- </xsl:element>
- </xsl:if>
- <xsl:if test="normalize-space(id/text())!=normalize-space(//List/unit/text())">
- <xsl:element name="option">
- <xsl:attribute name="value"><xsl:value-of select="id"/></xsl:attribute>
- <xsl:value-of select="name"/>
- </xsl:element>
- </xsl:if>
- </xsl:for-each>
- </xsl:element>
- </xsl:template>
- </xsl:stylesheet>
以上是我做的办法,如果大家有更方便的方法,希望能发出来一起研究.
分享到:
相关推荐
XPath提供了一种查询和定位XML文档中元素和属性的方法,而XSLT则利用这些查询结果来定义如何转换源文档。简单来说,XPath告诉你“选什么”,而XSLT告诉你“怎么做”。 #### XSLT的加工机制 XSLT的加工过程是基于树...
本篇文章将详细探讨如何使用C#进行XML文件的操作,包括读取、写入、修改以及解析XML文档。 1. **读取XML文件** 使用`System.Xml`命名空间中的`XmlDocument`类可以轻松读取XML文件。首先,我们需要加载XML文件,...
- XSLT:转换XML到其他XML或HTML的样式表语言,可用于数据格式化或转换。 6. **异步操作和流处理** - 在大型XML文件处理中,使用`XmlReader`和`XmlWriter`的异步版本可以提高性能。 - `XmlReaderSettings`允许...
### 案例2:使用SAX或DOM解析XML 除了使用DOM,我们还可以选择SAX解析器来处理大型XML文件,因为它具有更好的性能。以下是使用SAX解析器的示例: ```java import org.xml.sax.XMLReader; import org.xml.sax....
- **`sel` 或 `select`**:选择数据或查询XML文档(支持XPath等)。 - **`tr` 或 `transform`**:使用XSLT转换XML文档。 - **`val` 或 `validate`**:验证XML文档(格式良好性、DTD、XSD、RelaxNG等)。 - **`fo` 或...
然后,可以使用`LOAD DATA INFILE`或`INSERT INTO...SELECT`语句结合`JSON`函数解析JSON数据。例如: ```sql INSERT INTO json_table (data) SELECT JSON_OBJECT('id', id, 'name', name, 'balance', balance) ...
20.9.2 XML-RPC中的数据 表示 434 20.9.3 XML-RPC响应 435 20.9.4 错误处理机制 436 20.9.5 通过XML-RPC展示 BittyWiki API 437 20.9.6 基于XML-RPC Web服务 的wiki搜索和替换 440 20.10 SOAP 442 20.10.1 SOAP快速...
- **高效性**: lxml 利用了 C 语言编写的 libxml2 和 libxslt 库,因此在处理大规模文档时表现出色。 - **兼容性**: lxml 提供了与 Python 的 ElementTree API 兼容的接口,使得用户可以轻松迁移现有的代码。 - **...
2. **--with-select_module**:支持select模型,默认情况下启用,如果服务器不支持epoll或者kqueue等高效I/O模型,则可以使用此选项。 3. **--with-poll_module**:支持poll模型,相比select模型效率更高,适用于高...