我想在Java中合并2个XML流(字符串),必须通过XSLT(我可以改变转换),但问题是XML是一个字符串.有很多例子,但是通过文件.这可以在不保存文件的情况下完成吗?
谢谢.
我有一个xml文件和一个相关的xslt文件.我正在使用msxsl.exe,我需要传递一个参数作为命令行参数,并在我的xslt文件中使用它.我怎样才能做到这一点???
命令:
msxsl.exe country.xml sheet.xslt -o country_sheet.html p1="india"
Run Code Online (Sandbox Code Playgroud)
如何检索india我的xslt文件中的值?
我有以下内容:
<xsl:when test="(PropertyType[@PropertyType=1])
and ($year - YearBuild < 3)"
>New</xsl:when>
Run Code Online (Sandbox Code Playgroud)
我想测试几个属性类型的属性标记,并且不仅为1,例如,在上面的例子中我检查,如果属性属性类型的元素的属性类型是等于1,我要检查它是否:等于1或2的,或10或11或....(一个数字列表)如何?
谢谢
我需要更改根元素中的名称空间,如下所示:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<foo xsi:schemaLocation="urn:isbn:1-931666-22-9 http://www.loc.gov/ead/ead.xsd"
xmlns:ns2="http://www.w3.org/1999/xlink" xmlns="urn:isbn:1-931666-22-9"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
Run Code Online (Sandbox Code Playgroud)
<foo audience="external" xsi:schemaLocation="urn:isbn:1-931666-22-9
http://www.loc.gov/ead/ead.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-
instance" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="urn:isbn:1-931666-22-9">
Run Code Online (Sandbox Code Playgroud)
当我复制整个文档并且在给出任何其他转换指令之前,我试图这样做,但以下不起作用:
<xsl:template match="* | processing-instruction() | comment()">
<xsl:copy copy-namespaces="no">
<xsl:for-each select=".">
<xsl:attribute name="audience" select="'external'"/>
<xsl:namespace name="xlink" select="'http://www.w3.org/1999/xlink'"/>
</xsl:for-each>
<xsl:copy-of select="@*"/>
<xsl:apply-templates/>
</xsl:copy>
</xsl:template>
Run Code Online (Sandbox Code Playgroud)
谢谢你的建议!
有没有人使用xpath表达式找到或创建XObject的简洁方法.
我遇到的问题是我需要在一个元素(我有xpath)上设置一个值,这个值可能存在也可能不存在.如果它不存在,我希望它被创建.
非常感谢任何提示或链接.
谢谢大家.
我有以下XSLT节点:
<xsl:for-each select="Book[title != 'Moby Dick']">
....
</xsl:for-each>
Run Code Online (Sandbox Code Playgroud)
但是,我想在for-each中使用多个过滤器.我尝试了以下内容,但它似乎不起作用:
<!-- Attempt #1 -->
<xsl:for-each select="Book[title != 'Moby Dick'] or Book[author != 'Rowling'] ">
....
</xsl:for-each>
<!-- Attempt #2 -->
<xsl:for-each select="Book[title != 'Moby Dick' or author != 'Rowling']">
....
</xsl:for-each>
Run Code Online (Sandbox Code Playgroud) 我知道这个问题听起来像是"从过去"的事情,但我需要做一个功课,我不能让它工作.
问题如下:
我有从数据库调用的xml数据,我使用xslt在浏览器上呈现xforms文档,顺便说一下它的旧firefox 3.6只是为了使用xforms扩展而安装的.它正确呈现xforms文档,但控件无法正常工作,我无法提交表单,实例数据也没有填入输入.
我的xsl样式表如下:
<xsl:stylesheet version="1.0"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xf="http://www.w3.org/2002/xforms">
<xsl:output method="xml"
indent="yes"
omit-xml-declaration="yes"
media-type="application/xhtml+xml"
doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" />
<xsl:template match="/">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:xf="http://www.w3.org/2002/xforms" dir="ltr" lang="es">
<head>
<xf:model>
<xf:instance>
<data xmlns="">
<iCargo_Id>1</iCargo_Id>
<sCargo_Desc>lalala</sCargo_Desc>
<iConcurrencia_Id>1</iConcurrencia_Id>
</data>
</xf:instance>
<xf:submission id="prueba" action="EditarCargos.aspx" method="post"/>
</xf:model>
<link href="../css/style.css" rel="stylesheet" type="text/css" />
<title><![CDATA[Adicionar Cargos]]></title>
</head>
<body>
<div class="header"></div>
<div class="menu">
<a href="../empleados/editarempleados.aspx"><![CDATA[Empleados]]></a>
<a href="../horarios/editarhorarios.aspx"><![CDATA[Horarios]]></a>
<a href="../jornadas/editarjornadas.aspx"><![CDATA[Jornadas]]></a>
<a href="../cargos/editarcargos.aspx"><![CDATA[Cargos]]></a>
<a href="../usuarios/editarusuarios.aspx"><![CDATA[Usuarios]]></a>
<a href="../profesiones/editarprofesiones.aspx"><![CDATA[Profesiones]]></a>
<a href="../reportes/ReporteMarcaciones.aspx"><![CDATA[Rep. de Marcaciones]]></a>
<a href="../cerrarSesion.aspx"><![CDATA[Cerrar Sesión]]></a>
</div>
<div id="main">
<div class="mainTitle"> …Run Code Online (Sandbox Code Playgroud) 我正在为我的XSL进行额外的国际化.我已经看到很多创建dictionary.xml文件并通过文档('dictionary.xml')将其加载到我的XSL中的示例.我想做类似的事情,但我不想在磁盘上创建和存储dictionary.xml文件,我宁愿在服务器启动时从SQL构建它,并将Document对象保存在Java内存中.我想将字典文档作为参数传递给变换器,以便我的XSL转换函数可以使用它.但是,它似乎没有起作用.
相关的Java代码:
Document dictionary = TranslationDictionary.getDictionaryDocument();
transformer.setParameter("dictionary", dictionary);
Run Code Online (Sandbox Code Playgroud)
字典文件内容:
<dictionary xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<translatedString dictionaryId="BASIC_DETAILS">
<language id="es" value="Detalles Básicos"/>
</translatedString >
<translatedString dictionaryId="VEHICLE_INFORMATION">
<language id="es" value="Información del Vehículo"/>
</translatedString >
<translatedString dictionaryId="STRUCTURE">
<language id="es" value="Estructura"/>
</translatedString >
<translatedString dictionaryId="DRIVER_INFORMATION">
<language id="es" value="Información del Conductor"/>
</translatedString >
<translatedString dictionaryId="MAINTENANCE_AND_FEUL">
<language id="es" value="Mantenimiento & Combustible"/>
</translatedString >
<translatedString dictionaryId="PURCHASING">
<language id="es" value="Compra"/>
</translatedString >
</dictionary>
Run Code Online (Sandbox Code Playgroud)
XSL文件:
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:dc="http://www.test.com">
<xsl:param name="dictionary"/>
<xsl:param name="language" select="'es'"/>
<xsl:template match="/">
<xsl:message>
<xsl:copy-of select="$dictionary/dictionary/translatedString[@dictionaryId='BASIC_DETAILS']/language[@id='es']/@value"/>
</xsl:message>
</xsl:template> …Run Code Online (Sandbox Code Playgroud) 我正在调试vs 2010中的xslt文件,起初我被提示链接到xml源文件.但是,现在我想使用不同的源文件.如何让xslt指向不同的xml源文件?
我正在学习xslt并且有一个关于如何在diff中使用xslt变量的问题.对于每个循环.我知道xslt不是一个过程语言,因此在for循环中声明的变量不能在另一个循环中访问.但有没有什么方法可以声明全局变量然后在第一个for循环中分配一些值并在第二个for循环中使用该变量?
任何想法都将受到高度赞赏.
谢谢