xml 相关问题

可扩展标记语言(XML)是一种灵活的结构化文档格式,用于定义人类和机器可读的编码规则。

带递归的 XSLT 转换

我需要将 XML 文档转换为 HTML。 输入 XML: 大家好! 我需要将 XML 文档转换为 HTML。 输入XML: <items> <item no="1" par_no="0" user="Mike">Hi all!</item> <item no="2" par_no="1" user="Jane">Hi...</item> <item no="3" par_no="2" user="Pit"> says: wasap man?</item> <item no="4" par_no="2" user="Karol">are you ok?</item> <item no="5" par_no="4" user="Nick">I think he's not in the mood.</item> <item no="6" par_no="5" user="Karol">I just ask a question.</item> <item no="7" par_no="1" user="Pit">says: how are you?</item> <item no="8" par_no="7" user="Mike">fine!</item> </items> 输出 HTML: <?xml version="1.0" encoding="UTF-8"?> <ul> <li><b>Mike</b> says: Hi all! <ul> <li><b>Jane</b> says: Hi... <li><b>Pit</b> says: wasap man? <li><b>Karol</b> says: are you ok? <ul> <li><b>Nick</b> says: I tihnk he's not in the mood. <ul> <li><b>Karol</b> says: I just ask a question. </ul> </li> </ul> </li> </ul> </li> <li><b>Pit</b> says: how are you? <ul> <li><b>Mike</b> says: fine! </ul> </li> </ul> </li> </ul> 我试图解决这个问题。我得到了代码。正在对行进行排序,但我无法获取附件。我的 XSL: <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html" /> <xsl:template match="items"> <html> <ul> <xsl:apply-templates select="item[@par_no=0]"/> </ul> </html> </xsl:template> <xsl:template match="item"> <xsl:variable name="varNo" select="@no"/> <li> <b><xsl:value-of select="@user"/></b> <xsl:text> says: </xsl:text> <xsl:value-of select="."/> </li> <xsl:apply-templates select="//items/item[@par_no=$varNo]"> <xsl:sort select="@par_no" data-type="number"/> </xsl:apply-templates> </xsl:template> </xsl:stylesheet> 我不知道在哪里插入标签才能得到这样的嵌套结构。请帮忙! 在 XSLT 3 中,您可以按如下方式解决: <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="3.0" xmlns:xs="http://www.w3.org/2001/XMLSchema" exclude-result-prefixes="#all"> <xsl:output method="html" version="5.0" indent="yes"/> <xsl:template match="/"> <html> <head> <title>Test</title> </head> <body> <xsl:apply-templates/> </body> </html> </xsl:template> <xsl:key name="child" match="item" use="@par_no"/> <xsl:template match="items"> <ul> <xsl:apply-templates select="key('child', '0')"/> </ul> </xsl:template> <xsl:template match="item"> <li> <b><xsl:value-of select="@user"/></b> <xsl:text> says: </xsl:text> <xsl:value-of select="."/> <xsl:where-populated> <ul> <xsl:apply-templates select="key('child', @no)"/> </ul> </xsl:where-populated> </li> </xsl:template> </xsl:stylesheet> 密钥和模板在以前的版本中的工作方式相同,您需要将 xsl:where-populated 替换为检查 key('child', @no) 是否选择元素以输出 ul: <xsl:template match="item"> <li> <b><xsl:value-of select="@user"/></b> <xsl:text> says: </xsl:text> <xsl:value-of select="."/> <xsl:variable name="children" select="key('child', @no)"/> <xsl:if test="$children"> <ul> <xsl:apply-templates select="$children"/> </ul> </xsl:if> </li> </xsl:template> 我认为你可以简单地做(仅使用 XSLT 1.0): <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html"/> <xsl:key name="chld" match="item" use="@par_no" /> <xsl:template match="/items"> <ul> <xsl:apply-templates select="item[@par_no='0']"/> </ul> </xsl:template> <xsl:template match="item"> <li> <b> <xsl:value-of select="@user"/> </b> <xsl:text> says: </xsl:text> <xsl:value-of select="."/> <ul> <xsl:apply-templates select="key('chld', @no)"/> </ul> </li> </xsl:template> </xsl:stylesheet> 浏览器中显示的结果是: 是的,我致力于 XSLT 1.0。但我没有得到这个结果。在我的 Chrome 浏览器中,结果有所不同。不幸的是我无法发布图片(( 我需要像你的照片一样的结果! HTML: <ul> <li><b>Mike</b> says: Hi all! <ul> <li> <b>Jane</b> says: Hi... <ul> <li><b>Pit</b> says: asap man?</li> <li><b>Karol</b> says: are you ok? <ul> <li><b>Nick</b> says: I think he's not in the mood. <ul> <li><b>Karol</b> says: I just ask a question.</li> </ul> </li> </ul> </li> </ul> </li> <li><b>Pit</b> says: how are you? <ul> <li><b>Mike</b> says: fine!</li> </ul> </li> </ul> </li> </ul> 为什么说 Pit 会重复两次?

回答 3 投票 0

如何将图像缩放到顶部中心? - 安卓

我有一个图像视图作为背景。它比屏幕大。我想将其水平居中。它应该与顶部对齐。因此,原始图像的顶部应该在屏幕上看到。我可以调整大小

回答 2 投票 0

使用 xmlstarlet 更新现有 xml 文件元素的属性和值

我想编写一个脚本来迭代每个元素“NewTempP”的属性和子元素,并将结构复制到元素“fig”作为子元素。 “NewTempP”...

回答 1 投票 0

soap xml 响应 xsi:类型值已更改

我们的tomcat webservice响应是soap xml格式。 xsi:type 从 xsi:type="ax235:SearchOutput"> 更改为 xsi:type="ax239:SearchOutput"> 有一天突然。 ns 返回...

回答 1 投票 0

如何从 C# 中删除 XML 上的 <xsi:type="xsd:string">

我正在尝试使用 C# 中的 SOAP 服务,有一个定义为对象的属性,但我无法正确传递它。 如果我在传递 XMLDoc 时导入 System.Xml 并创建 XML。

回答 1 投票 0

C# 中的 HTTP post XML 数据,具有基本身份验证

我正在用 C# 设置简单的控制台应用程序以进行一些 API 集成。我需要使用带有 POST 请求(以 XML 数据作为请求正文)和基本身份验证的 API。 我可以吃A...

回答 2 投票 0

org.glassfish.jaxb.runtime.v2.runtime.IllegalAnnotationsException:1 个 IllegalAnnotationExceptions @XmlValue

org.glassfish.jaxb.runtime.v2.runtime.IllegalAnnotationsException:1 个 IllegalAnnotationException 计数。如果是 @XmlElement 类的属性,则不能使用属性 @

回答 1 投票 0

XSLT - 将单个属性分离为具有属性的多个元素

我有一些源 XML,其中包含对一个属性内多个值的交叉引用。我需要将它们分成具有属性值的自己不同的元素。 输入 XML: B... 我有一些源 XML,其中包含对一个属性内多个值的交叉引用。我需要将它们分成具有属性值的自己不同的元素。 输入XML: <p>Blah blah blah <xref ref-type="bibr" rid="ref004 ref005 ref006 ref007">4&#x2013;7</xref>.</p> 所需的输出 XML: <p>Blah blah blah <xref ref-type="bibr" rid="ref004">4</xref><xref ref-type="bibr" rid="ref005"/><xref ref-type="bibr" rid="ref006"/>&#x2013;<xref ref-type="bibr" rid="ref007">7</xref>.</p> 注意中间的 2 个交叉引用变成了空元素。 我有以下 XSLT,但它没有给我正确的输出 - 它将属性值作为元素内容插入。 <xsl:template match="@*|node()"> <xsl:copy> <xsl:apply-templates select="@*|node()"/> </xsl:copy> </xsl:template> <xsl:template match="xref"> <xsl:variable name="rid" select="@rid"/> <xsl:choose> <xsl:when test="contains($rid, ' ')"> <!-- Multiple references --> <xsl:variable name="refs" select="tokenize($rid, ' ')"/> <xsl:for-each select="$refs"> <xsl:if test="position() > 1"> <xsl:text> </xsl:text> </xsl:if> <xsl:variable name="refNum" select="substring-after(., 'ref')"/> <xsl:element name="xref"> <xsl:attribute name="ref-type">bibr</xsl:attribute> <xsl:attribute name="rid"> <xsl:value-of select="concat('ref', $refNum)"/> </xsl:attribute> <xsl:value-of select="."/> </xsl:element> </xsl:for-each> </xsl:when> <xsl:otherwise> <!-- Single reference --> <xsl:element name="xref"> <xsl:attribute name="ref-type">bibr</xsl:attribute> <xsl:attribute name="rid"> <xsl:value-of select="$rid"/> </xsl:attribute> <xsl:value-of select="."/> </xsl:element> </xsl:otherwise> </xsl:choose> </xsl:template> 我想我通过使用得到了预期的结果: <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="xml" indent="yes"/> <xsl:template match="@*|node()"> <xsl:copy> <xsl:apply-templates select="@*|node()"/> </xsl:copy> </xsl:template> <xsl:template match="xref[contains(@rid, ' ')]"> <xsl:variable name="ref" select="text()"/> <xsl:for-each select="tokenize(@rid, ' ')"> <xsl:choose> <xsl:when test="position()=1"> <xref ref-type="bibr" rid="{.}"> <xsl:value-of select="substring-before($ref, '&#x2013;')"/> </xref> </xsl:when> <xsl:when test="position()=last()"> <xsl:text>&#x2013;</xsl:text> <xref ref-type="bibr" rid="{.}"> <xsl:value-of select="substring-after($ref, '&#x2013;')"/> </xref> </xsl:when> <xsl:otherwise> <xsl:text> </xsl:text> <xref ref-type="bibr" rid="{.}"/> </xsl:otherwise> </xsl:choose> </xsl:for-each> </xsl:template> </xsl:stylesheet> 但这主要是基于根据您的单个示例猜测规则是什么......

回答 1 投票 0

如何使用 Kotlin 在运行时从 ZIP 延迟加载多文件 XSD?

出现了一个需求,其中需要在运行时加载包含许多模式的 xsd.zip 文件。该 ZIP 文件将在类路径上可用,最重要的是,它包含许多带有 xsd 的模式:

回答 1 投票 0

如何使用 Kotlin 在运行时从 ZIP 加载多文件 XSD?

出现了一个需求,其中需要在运行时加载包含许多模式的 xsd.zip 文件。该 ZIP 文件将在类路径上可用,最重要的是,它包含许多带有 xsd 的模式:

回答 1 投票 0

Apache CXF XSD 方案改为 Java,更改输出类和工厂名称

我正在使用 CXF maven 插件根据 XSD 方案定义生成 Java 类。我使用两个 xsdOptions 标签将两种不同方案的 Java 文件创建到两个不同的包中。生成的...

回答 1 投票 0

如何获取类中的文件路径?

我有这个 Xml 文件,我从 HDD 浏览到我的 C# 程序。现在,该 Xml 文档的节点显示在我的 winform 的树视图中。我现在所有的逻辑都在 winform 中。有三个

回答 2 投票 0

如何在android中设置换行内容的最大高度?

在android中,如何创建一个具有最大高度并包裹内容的滚动视图,基本上它垂直包裹内容,但有最大高度? 我试过 在android中,如何创建一个具有最大高度并包裹内容的滚动视图,基本上它垂直包裹内容,但具有最大高度? 我试过了 <ScrollView android:id="@+id/scrollView1" android:layout_width="match_parent" android:layout_height="wrap_content" android:maxHeight="200dp" android:layout_alignParentBottom="true" > <LinearLayout android:id="@+id/maincontainer" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> </LinearLayout> </ScrollView> 但这不起作用? 您可以将其添加到任何视图(覆盖从视图继承的类中的 onMeasure) @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { if (maxHeight > 0){ int hSize = MeasureSpec.getSize(heightMeasureSpec); int hMode = MeasureSpec.getMode(heightMeasureSpec); switch (hMode){ case MeasureSpec.AT_MOST: heightMeasureSpec = MeasureSpec.makeMeasureSpec(Math.min(hSize, maxHeight), MeasureSpec.AT_MOST); break; case MeasureSpec.UNSPECIFIED: heightMeasureSpec = MeasureSpec.makeMeasureSpec(maxHeight, MeasureSpec.AT_MOST); break; case MeasureSpec.EXACTLY: heightMeasureSpec = MeasureSpec.makeMeasureSpec(Math.min(hSize, maxHeight), MeasureSpec.EXACTLY); break; } } super.onMeasure(widthMeasureSpec, heightMeasureSpec); } 我扩展了 ScrollView 并添加了代码来实现此功能: https://gist.github.com/JMPergar/439aaa3249fa184c7c0c 希望有用。 您可以通过编程方式完成。 private static class OnViewGlobalLayoutListener implements ViewTreeObserver.OnGlobalLayoutListener { private final static int maxHeight = 130; private View view; public OnViewGlobalLayoutListener(View view) { this.view = view; } @Override public void onGlobalLayout() { if (view.getHeight() > maxHeight) view.getLayoutParams().height = maxHeight; } } 并将监听器添加到视图中: view.getViewTreeObserver() .addOnGlobalLayoutListener(new OnViewGlobalLayoutListener(view)); 当视图高度发生变化时,监听器将调用 onGlobalLayout() 方法。 可以通过将视图包装到 ConstraintLayout 并使用 layout_constraintHeight_max 属性来完成。 <androidx.constraintlayout.widget.ConstraintLayout android:layout_width="match_parent" android:layout_height="200dp"> <ScrollView android:layout_width="match_parent" android:layout_height="0dp" app:layout_constraintTop_toTopOf="parent" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintHeight_max="wrap" app:layout_constraintVertical_bias="0"> ... </ScrollView> </androidx.constraintlayout.widget.ConstraintLayout> 在上面的示例中,父级 ConstraintLayout 高度限制为 200dp,子级 ScrollView 高度包裹内容,直到小于 200dp。请注意,app:layout_constraintVertical_bias="0" 将子级 ScrollView 与父级的顶部对齐,否则它将居中。 要设置滚动视图高度,您必须同时使用 2 个 linerlayout ,然后将 scrool view 设置为它们的子级,然后设置中间 linerlayout 布局:限制滚动视图高度的高度。 1.) 创建一个类来处理将最大高度设置为用户传递的值: public class OnViewGlobalLayoutListener implements ViewTreeObserver.OnGlobalLayoutListener { private Context context; private int maxHeight; private View view; public OnViewGlobalLayoutListener(View view, int maxHeight, Context context) { this.context = context; this.view = view; this.maxHeight = dpToPx(maxHeight); } @Override public void onGlobalLayout() { if (view.getHeight() > maxHeight) { ViewGroup.LayoutParams params = view.getLayoutParams(); params.height = maxHeight; view.setLayoutParams(params); } } public int pxToDp(int px) { DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics(); int dp = Math.round(px / (displayMetrics.xdpi / DisplayMetrics.DENSITY_DEFAULT)); return dp; } public int dpToPx(int dp) { DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics(); int px = Math.round(dp * (displayMetrics.xdpi / DisplayMetrics.DENSITY_DEFAULT)); return px; } } 2.) 将其附加到视图并传递 DP 中的最大高度: messageBody.getViewTreeObserver() .addOnGlobalLayoutListener( new OnViewGlobalLayoutListener(messageBody, 256, context) ); 感谢@harmashalex 的灵感。我进行了修改,因为设置布局参数对 @harma 的代码不起作用。此外,dp 到 px 的转换对于减轻对它的疑惑是必要的。 对harmashalex答案进行一些修改,我可以为任何视图传递所需的最大高度: import android.view.View; import android.view.ViewTreeObserver; public class MaxHeightForAnyView implements ViewTreeObserver.OnGlobalLayoutListener{ private int maxHeight = 130; private View view; public MaxHeightForAnyView(View view, int maxHeight) { this.view = view; this.maxHeight = maxHeight ; } @Override public void onGlobalLayout() { if (view.getHeight() > maxHeight) view.getLayoutParams().height = maxHeight; } } 只需将侦听器设置为 oncreate 中具有所需高度的任何视图即可: txtShowTrans.getViewTreeObserver().addOnGlobalLayoutListener(new MaxHeightForAnyView(txtShowTrans, 600)); 在这里您可以像这样设置 Scrollview 的高度 -: <ScrollView android:id="@+id/scrollView1" android:layout_width="match_parent" android:layout_height="200dp" android:layout_alignParentBottom="true" > <LinearLayout android:id="@+id/maincontainer" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> </LinearLayout> </ScrollView>

回答 8 投票 0

Fo 内联换行不会删除将 XML 格式化为 XLS(excel)文件的 XSL 中的文本

使用 Xsl 样式表,我将输出 XML 文件(从我的工具获得)格式化为 Excel(xls 文件)。在此,我只想删除一段文字。我正在使用 fo:inline ,如下所示: &...

回答 1 投票 0

将 xml 转换保存在新的 xml 文件中

嘿嘿! 我有一个 xslt 文件来转换我的 xml,它运行得很好:) 但我只在氧气终端中得到结果,而不是在单独的文件中。 我试过: 嘿! 我有一个 xslt 文件来转换我的 xml,它运行得很好:) 但我只能在氧气终端中获得结果,而不是在单独的文件中。 我尝试过: <xsl:stylesheet xmlns="http://www.tei-c.org/ns/1.0" xmlns:telota="http://www.telota.de" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" xpath-default-namespace="http://www.tei-c.org/ns/1.0" exclude-result-prefixes="xs" version="2.0"> <xsl:result-document href="new_badius.xml"/> 这给了我错误:“元素 xsl:result-document 不得直接出现在 xsl:stylesheet 中” 尝试了一些层次结构的变化: <xsl:template match="node()|@*"> <xsl:copy> <xsl:result-document href="new_file.xml"/> <xsl:apply-templates select="node()|@*"/> </xsl:copy> </xsl:template> 或 <xsl:template match="node()|@*"> <xsl:result-document href="new_file.xml"/> <xsl:copy> <xsl:apply-templates select="node()|@*"/> </xsl:copy> </xsl:template> 这给了我错误只能创建一个 new_file.xml (它是空的) 我应该把<xsl:result-document href="new_file.xml"/>放在哪里,或者有更好的方法将我的结果保存为.xml吗? xsl:result-document属于模板,哪个模板显然取决于您的XML输入结构、样式表结构以及结果文档的数量和想要的内容。 另请注意,oXygen 允许您配置一个转换场景,您可以在其中定义将主要结果写入到您可以定义名称的文件中,请参阅 https://www.oxygenxml.com/doc/versions/26.1/ ug-editor/topics/the-output-tab.html.

回答 1 投票 0

SAML2 以表单形式提交 XML SAMLRequest 值

我正在尝试使用 SAML 验证用户登录。我有一个简单的 HTML 表单。 我正在尝试使用 SAML 验证用户登录。我有一个简单的 HTML 表格。 <form method="post" action="https://abcd/login"> <input type="hidden" name="SAMLRequest" value="request" /> <input type="hidden" name="RelayState" value="token" /> <input type="submit" value="Submit" /> </form> 我对如何仅用 base64 发送 XML 的 SAMLRequest 编码感到困惑。如果有人能给我指出正确的方向或链接到演示,那将是一个巨大的帮助。 这取决于您使用的 SAML2 配置文件。假设您使用的是 Web 浏览器 SSO (WBSSO),这一切都是通过 POST 自动将浏览器发送到 URL 来完成的。用户访问您的应用程序,您创建 SAMLRequest 和 RelayState 并自动将表单发布到 IdP。 IdP 对用户进行身份验证(您不关心这部分),然后使用包含身份验证信息和属性的 base64 SAMLReponse 自动将浏览器重定向回您的断言消费者服务 (ACS) URL。 此处有 SP 启动流程的简单概述。 我是这样做的: javascript 向此url发送请求和请求后,我们如何使用Angular或javascipt在我们的登录屏幕上看到对方的响应。 能举个例子吗

回答 2 投票 0

如何在 odoo 上像 mps 一样创建树视图?

我想在我的 odoo 模块上创建这样的东西: 在此输入图像描述 结论: 请帮我一些建议。任何提示将不胜感激。任何事情都可以提供帮助。 我正在使用 odo...

回答 1 投票 0

xml
回答 2 投票 0

svg 自动缩放,在最终用户分辨率之间固定画布大小

我有一个 Power BI,我正在使用 HTML 内容视觉对象生成 .svg 图像。默认情况下,画布为 1280x720 以实现最大兼容性(我无法更改)。 .svg 是在 Ca 创建的...

回答 1 投票 0

xmlstarlet 追加到 XML 中的节点

我有一个包含以下条目的 xml 文件: .... 我有一个包含以下条目的 xml 文件: .... <fieldType name="text_general" class="solr.TextField" positionIncrementGap="100" multiValued="true"> <analyzer type="index"> <tokenizer class="solr.StandardTokenizerFactory"/> <filter class="solr.StopFilterFactory" words="stopwords.txt" ignoreCase="true"/> <filter class="solr.LowerCaseFilterFactory"/> </analyzer> <analyzer type="query"> <tokenizer class="solr.StandardTokenizerFactory"/> <filter class="solr.StopFilterFactory" words="stopwords.txt" ignoreCase="true"/> <filter class="solr.SynonymGraphFilterFactory" expand="true" ignoreCase="true" synonyms="synonyms.txt"/> <filter class="solr.LowerCaseFilterFactory"/> </analyzer> </fieldType> .... 我想在 <analyzer type="index"> 中注入以下 XML 节点: <filter class="solr.NGramFilterFactory" minGramSize="1" maxGramSize="20"/> 因此,最终的预期 XML 如下所示: .... <fieldType name="text_general" class="solr.TextField" positionIncrementGap="100" multiValued="true"> <analyzer type="index"> <tokenizer class="solr.StandardTokenizerFactory"/> <filter class="solr.StopFilterFactory" words="stopwords.txt" ignoreCase="true"/> <filter class="solr.LowerCaseFilterFactory"/> <filter class="solr.NGramFilterFactory" minGramSize="1" maxGramSize="20"/> </analyzer> <analyzer type="query"> <tokenizer class="solr.StandardTokenizerFactory"/> <filter class="solr.StopFilterFactory" words="stopwords.txt" ignoreCase="true"/> <filter class="solr.SynonymGraphFilterFactory" expand="true" ignoreCase="true" synonyms="synonyms.txt"/> <filter class="solr.LowerCaseFilterFactory"/> </analyzer> </fieldType> .... 为此,我尝试使用xmlstarlet,如下所示: xmlstarlet ed --inplace -s "//fieldType" -t elem -n "text_general" -i "//filter" -t attr -n "class" -v ""solr.NGramFilterFactory" minGramSize="1" maxGramSize="20"" <file_name_here> 但显然,这不起作用(当我运行它时,它真的弄乱了我的 XML 文件!)。我对 xmlstarlet 很陌生,并且很难使用正确的语法来实现此目标。我也认为我的尝试中引用有问题。 您应该能够通过创建一个新的 filter 元素,然后向其添加属性来完成此操作(新的 filter 现在是 filter 中的最后一个 analyzer 元素)... xmlstarlet ed --inplace -s '//analyzer[@type="index"]' -t elem -n filter -i '//analyzer[@type="index"]/filter[last()]' -t attr -n class -v solr.NGramFilterFactory -i '//analyzer[@type="index"]/filter[last()]' -t attr -n minGramSize -v 1 -i '//analyzer[@type="index"]/filter[last()]' -t attr -n maxGramSize -v 20 input.xml 另一种选择是使用 XSLT。我认为这比尝试从命令行执行所有操作要容易得多... xmlstarlet tr so.xsl input.xml > output.xml XSLT 1.0(so.xsl) <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output indent="yes"/> <xsl:strip-space elements="*"/> <xsl:template match="@*|node()"> <xsl:copy> <xsl:apply-templates select="@*|node()"/> </xsl:copy> </xsl:template> <xsl:template match="analyzer[@type='index']"> <xsl:copy> <xsl:apply-templates select="@*|node()"/> <filter class="solr.NGramFilterFactory" minGramSize="1" maxGramSize="20"/> </xsl:copy> </xsl:template> </xsl:stylesheet>

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.