gpt4 book ai didi

xml - XSLT、xsltproc 参数

转载 作者:行者123 更新时间:2023-12-04 19:27:10 28 4
gpt4 key购买 nike

所以,我想做的是使用 xsltproc 查询 XML 文件,传入服务器名称的参数。此名称包含在 XML 文档中。我想从此文件中提取用户名和密码。

因此,Name 是 User 和 Pass 的兄弟。我不经常使用 XSLT、XPath 或 XQuery(这是 19 年来的第二次)。我只是不知道如何从样式表的 XML 文件中提取数据。

这是我从 CLI 传入的内容(我认为是正确的):
xsltproc --stringparam site_name "'site2'"style.xsl source.xml

这是 XML

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<Container>
<Servers>
<Folder expanded="1">
<Server>
<User>username1</User>
<Pass>password1</Pass>
<Name>Site1</Name>
</Server>
<Server>
<User>username2</User>
<Pass>password2</Pass>
<Name>Site2</Name>
</Server>
</Folder>
<Server>
<User>username3</User>
<Pass>password3</Pass>
<Name>Site3</Name>
</Server>
<Server>
<User>username4</User>
<Pass>password4</Pass>
<Name>Site4</Name>
</Server>
</Servers>
</Container>

这是我当前的 XSLT 样式表

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:param name="site_name">Site1</xsl:param>
<xsl:output method="text"/>
<xsl:template match="//Servers">
<xsl:value-of select="//Server/Name"/>
</xsl:template>
</xsl:stylesheet>

最佳答案

嗯,我想通了。这是我所做的,可能不是最有效的,但它似乎有效。

CLI 用法几乎相同,我去掉了单引号。
xsltproc --stringparam site_name "site2"style.xsl source.xml

样式表

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:param name="site_name">Site1</xsl:param>
<xsl:output method="text"/>
<xsl:template match="Servers">
<xsl:for-each select="//Server">
<xsl:if test="Name=$site_name">
<xsl:value-of select="User"/>
<xsl:value-of select="Pass"/>
</xsl:if>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>

关于xml - XSLT、xsltproc 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15469002/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com