小编Dim*_*hev的帖子

XSLT获得了一些不需要的价值

XML:

    <?xml version="1.0" encoding="ISO-8859-1"?>
    <!DOCTYPE UploadXML SYSTEM "ex_v222.dtd">
    <UploadXML><Version>1.1</Version>
<Properties>
<Property>
<IntegratorID>3232321</IntegratorID>
<IntegratorPropertyID>12312312-3</IntegratorPropertyID>
<IntegratorOfficeID>1231231231</IntegratorOfficeID>....
Run Code Online (Sandbox Code Playgroud)

由于某种原因,以下XSL文件始终获取1.1值并将其放在信封元素之前:

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
      xmlns:fo="http://www.w3.org/1999/XSL/Format">
    <xsl:param name="Z">2312</xsl:param>
    <xsl:param name="A">KKK</xsl:param>
    <xsl:output method="xml" encoding="utf-8" indent="yes" />
        <xsl:strip-space elements="*" />

        <xsl:template match='/UploadXML/Properties'> 
        <Envelope>
        <Body>
        <add_adverts>
        <xsl:apply-templates select='Property'/>
        </add_adverts>
        </Body>
        </Envelope>
        </xsl:template>
Run Code Online (Sandbox Code Playgroud)

....(我相信模板实现并不重要..)

我得到的是:

<?xml version="1.0" encoding="utf-8"?>
1.1<Envelope xmlns:fo="http://www.w3.org/1999/XSL/Format">
  <Body>
    <add_adverts>
      <advert>
Run Code Online (Sandbox Code Playgroud)

...

看那1.1?为什么?任何的想法?

xml xslt

2
推荐指数
1
解决办法
145
查看次数

将自定义php函数添加到xsl

我有一个自定义函数说<?php this_content('Main heading'); ?>,我想在我的xsl里面添加,看起来像这样:

<xsl:template match="page" mode="body">

</xsl:template>
Run Code Online (Sandbox Code Playgroud)

我已经设置了registerPHPFunctions(),但这仅适用于php内部函数..?

php xslt

2
推荐指数
1
解决办法
3399
查看次数

将XSL转换应用于XElement的最佳方法是什么?

我有一个通过XElement.Parse()加载的文档,我需要对它应用XSL转换.我该怎么做呢?我知道要做的唯一方法是使用XPathDocument,我知道除了XElement-> String-> StringReader-> Stream-> XPathDocument之外,我无法在两者之间进行转换.

肯定有更好的办法.

在一个相关的问题中,将XPath应用于XElement的最佳方法是什么?

.net xml xslt

2
推荐指数
1
解决办法
2223
查看次数

如何在XSLT中将双引号替换为字符串'\“'?

我有一个XML,其中双引号应替换为字符串“”。

例如:<root><statement1><![CDATA[<u>teset "message"here</u>]]></statement1></root>

所以输出应该是 <root><statement1><![CDATA[<u>teset \"message\"here</u>]]></statement1></root>

有人可以解释如何做到这一点吗?

xml xslt

2
推荐指数
1
解决办法
1万
查看次数

您可以使用XSLT中的函数定义自定义归类吗?

我想定义一个元素中使用的字符串的排序.例如,<class> Senior </ class> <class> Junior </ class> <class> Sophomore </ class> <class> Freshman <class>将描述类的合理排序.

有没有办法使用<xsl:sort select ='class'>按上面给出的顺序排序?

提前致谢.

xslt xslt-2.0

2
推荐指数
1
解决办法
1220
查看次数

在SQL Server XML列中更新XML属性

我正在尝试更新我的XML中存储在SQL Server XML列中的节点,如果我的XML在XML元素中,则下面的行可行,但现在我需要将其更改为XML属性,显然该行变为无效改变之后.

适用于XMLElement:

UPDATE  [Customers] 
SET  voucherXML.modify('replace value of (/ArrayOfCampaignVoucher/CampaignVoucher/Qty/text())[1] with "50"') 
WHERE  voucherXML.value('(/ArrayOfCampaignVoucher/CampaignVoucher/VouCode)[1]', 'nvarchar(50)') = @VoucherCode 
Run Code Online (Sandbox Code Playgroud)

我尝试改变这样的语句,但没有运气,没有错误,但QTY值不会改变值@NewQuantity:

UPDATE [Customers]  
       SET voucherXML='<ArrayOfCampaignVoucher xmlns:xsd="http://www.w3.org/2001/XMLSchema" Qty="' + CAST(@NewQuantity AS NVARCHAR(16)) + '" />'  
   WHERE voucherXML.value('(/CampaignVoucher/VouCode)[1]', 'nvarchar(50)') = @VoucherCode 
Run Code Online (Sandbox Code Playgroud)

这就是我的XML在SQL Server XML列中的外观:

<ArrayOfCampaignVoucher xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <CampaignVoucher VouCode="Vouc001" Qty="16" />
  <CampaignVoucher VouCode="Vouc002" Qty="18" />
  <CampaignVoucher xsi:nil="true" />
</ArrayOfCampaignVoucher>
Run Code Online (Sandbox Code Playgroud)

xml sql sql-server xquery-sql

2
推荐指数
1
解决办法
1万
查看次数

如何使用xslt获取元素的最后一个值

我如何使用XSLT检索元素的最后一个子节点,例如:

<zoo>
  <example>
     <name>A</name>
  </example>
  <example>
       <name>B</name>
  </example>
  <example>
        <name>C</name>
  </example>
  <example>
        <name>D</name>
  </example>
</zoo>
Run Code Online (Sandbox Code Playgroud)

我怎样才能找回D?谢谢你的帮助

xml xslt xpath

2
推荐指数
1
解决办法
3930
查看次数

如何让xslt缩进xml(来自Ant)?

根据我的理解,我已经四处寻找答案,以下内容应该有效:

<xslt basedir="..." destdir="..." style="xslt-stylesheet.xsd" extension=".xml"/>
Run Code Online (Sandbox Code Playgroud)

其中xslt-stylesheet.xsd包含以下内容:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="xml" indent="yes"/>
    <xsl:strip-space elements="*"/>
    <xsl:template match="/">
        <xsl:copy-of select="."/>
    </xsl:template>
</xsl:stylesheet>
Run Code Online (Sandbox Code Playgroud)

不幸的是,虽然应用了大多数格式(空格被剥离,输入了换行符等),但缩进不是,并且每个元素都位于文件的左侧.这是xslt处理器Ant使用的问题,还是我做错了什么?(使用Ant 1.8.2).

ant xslt

2
推荐指数
1
解决办法
4543
查看次数

xxx不是有效的虚拟路径?

我用XmlDataSource这样的:

<asp:XmlDataSource ID="xmlDataSource1" runat="Server" DataFile="https://myurl.xml" ></asp:XmlDataSource>
Run Code Online (Sandbox Code Playgroud)

作为我rotater控制的数据源.


但我一直得到以下例外:

https://myurl.xml不是有效的虚拟路径.

虽然我在外部尝试了链接,但是有一个xml文件

c# asp.net xmldatasource virtual-path

2
推荐指数
1
解决办法
3968
查看次数

使用xpath查找重复的兄弟

如何使用Xpath仅查找至少具有相似/相等的兄弟节点的节点?

例如:

<root>
  <parent>
    <node>...</node>
    <node_unique>...</node_unique>
    <node>...</node>
    <another_one>...</another_one>
    <another_one>...</another_one>
  </parent>
</root>
Run Code Online (Sandbox Code Playgroud)

在示例中,xpath shold仅选择<node>,<another_one>因为它们出现的次数不止一次.

我试图找到一个解决方案几个小时没有成功(现在我认为XPath不可能...).

xpath duplicates siblings xpath-2.0

2
推荐指数
1
解决办法
7619
查看次数