相关疑难解决方法(0)

XSL返回XML不变

我正在寻找一个简单地返回XML的XSL片段.这听起来微不足道,但我似乎无法在网络上的任何地方找到一个例子.有帮助吗?

xml xslt

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

使用XSL对属性进行排序

我试图通过按名称(而不是值)对每个元素的属性进行排序来规范化某些XML数据的表示.这个想法是在添加或删除属性时保持文本差异最小,并防止不同的编辑者引入等效变体.这些XML文件受源代码控制,开发人员希望在不使用专门的XML工具的情况下对这些更改进行区分.

我很惊讶没有找到如何做到这一点的XSL示例.基本上我只想要使用有序属性进行身份转换.我提出以下内容似乎适用于我的所有测试用例:

<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="xml" encoding="UTF-8" indent="yes"/>
  <xsl:template match="*|/|text()|comment()|processing-instruction()">
    <xsl:copy>
    <xsl:for-each select="@*">
        <xsl:sort select="name(.)"/>
        <xsl:copy/>
      </xsl:for-each>
      <xsl:apply-templates/>
    </xsl:copy>
  </xsl:template>
</xsl:stylesheet>
Run Code Online (Sandbox Code Playgroud)

作为一个总的XSL n00b,我将不胜感激任何关于风格或效率的评论.我认为在这里发布它可能会有所帮助,因为它似乎至少不是一个常见的例子.

sorting xslt attributes identity

10
推荐指数
1
解决办法
8510
查看次数

如何使normalize-space()xpath函数起作用?

我目前正在尝试以下xpath

//tr[normalize-space(td/text())='User Name']
Run Code Online (Sandbox Code Playgroud)

让所有包含包含TD的TR 'User Name''User Name'' User Name ',但它不工作,我不知道什么是错的查询:(
我想找到的数据是按以下格式

<tr><td>User Name</td></tr>
<tr><td>User     Name</td></tr>
<tr><td>  User Name   </td></tr>
Run Code Online (Sandbox Code Playgroud)

那么编写这个xpath查询的正确格式是什么?

编辑:如果数据采用以下格式,则似乎无效

<tr><td>x</td><td>User Name</td></tr>
<tr><td>x</td><td>y</td><td>User     Name</td></tr>
<tr><td>x</td><td>y</td><td>z</td><td>  User Name   </td></tr>
Run Code Online (Sandbox Code Playgroud)

那么现在我该如何编写xpath查询?
注意:"// tr [normalize-space(td/text())='用户名']"不会工作
但是"// tr/td [normalize-space(text())='用户名']"将工作(但我想得到tr而不是td元素)

c# xpath

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

标签 统计

xslt ×2

attributes ×1

c# ×1

identity ×1

sorting ×1

xml ×1

xpath ×1