如何有条件地修改XML?
我有一个XML文档,它通过实体标记模型运行,并生成以下XML。我正在尝试使用XSLT将该输出重新格式化为可管理、高效的方式 基本上,我希望根据实体类型修改字段名称,并将所有相关信息合并到一个部分或如何有条件地修改XML?,xml,xslt-2.0,Xml,Xslt 2.0,我有一个XML文档,它通过实体标记模型运行,并生成以下XML。我正在尝试使用XSLT将该输出重新格式化为可管理、高效的方式 基本上,我希望根据实体类型修改字段名称,并将所有相关信息合并到一个部分或ENTINFO标记中。这样,当我查看SSN属于乔治·华盛顿和托马斯·杰斐逊的数据时就很清楚了。这在XSLT中是可能的,还是编写脚本更好 原始XML <?xml version="1.0" encoding="UTF-8"?> <NORMDOC> <DOC>
ENTINFO
标记中。这样,当我查看SSN属于乔治·华盛顿和托马斯·杰斐逊的数据时就很清楚了。这在XSLT中是可能的,还是编写脚本更好
原始XML
<?xml version="1.0" encoding="UTF-8"?>
<NORMDOC>
<DOC>
<DOCID>112233</DOCID>
<FI fitype="B" xref="54321">
<FIName>FOUNDING FATHERS CREDIT UNION</FIName>
<FITIN>1212</FITIN>
</FI>
<OIs>
<OI xref="654321">
<OIName>FOUNDING FATHERS CREDIT UNION</OIName>
</OI>
</OIs>
<Subjects>
<Subject stype="PER" xref="98765">
<SubjectFullName type="L">Washington/George</SubjectFullName>
<SubjectLastName type="L">Washington</SubjectLastName>
<SubjectFirstName type="L">George</SubjectFirstName>
<SubjectID type="SSN/ITIN">111111111</SubjectID>
<SubjectPhone type="Residence">1112223333</SubjectPhone>
</Subject>
<Subject stype="PER" xref="98876">
<SubjectFullName type="L">Jefferson/Thomas</SubjectFullName>
<SubjectLastName type="L">Jefferson</SubjectLastName>
<SubjectFirstName type="L">Thomas</SubjectFirstName>
<SubjectID type="SSN/ITIN">222222222</SubjectID>
</Subject>
</Subjects>
<TXT>
<S sid="112233-SENT-001"><ENAMEX type="PERSON" id="PER-112233-001">George Washington</ENAMEX> and <ENAMEX type="PERSON" id="PER-112233-002">Thomas Jefferson</ENAMEX> were both founding fathers.</S>
<S sid="112233-SENT-002"><ENAMEX type="PERSON" id="PER-112233-002">Thomas Jefferson</ENAMEX> has a social security number of <IDEX type="SSN" id="SSN-112233-075">222-22-2222</IDEX>.</S>
<S sid="112233-SENT-003"><ENAMEX type="PERSON" id="PER-112233-001">George Washington</ENAMEX> has social security number <IDEX type="SSN" id="SSN-112233-074">111-11-1111</IDEX>.</S>
<S sid="112233-SENT-004"><ENAMEX type="PERSON" id="PER-112233-001">George Washington</ENAMEX> can be reached at <IDEX type="PHONE" id="PHO-112233-100">111-222-3333</IDEX>.</S>
</TXT>
</DOC>
<ENTINFO ID="PHO-112233-100"
TYPE="PHONE"
NORM="(111) 222-3333"
REFID="PHO-112233-100"
MENTION="111-222-3333"/>
<ENTINFO ID="SSN-112233-075"
TYPE="SSN"
NORM="222222222"
REFID="SSN-112233-075"
MENTION="social security number of 222-22-2222"
SSNTYPE="SSN"/>
<ENTINFO ID="SSN-112233-074"
TYPE="SSN"
NORM="111111111"
REFID="SSN-112233-074"
MENTION="social security number of 111-11-1111"
SSNTYPE="SSN"/>
<ENTINFO ID="PER-112233-001"
TYPE="PERSON"
NORM="Washington, George"
REFID="PER-112233-001"
MENTION="George Washington"
GIVEN="George"
MIDDLE=""
SURNAME="Washington"/>
<ENTINFO ID="PER-112233-002"
TYPE="PERSON"
NORM="Jefferson, Thomas"
REFID="PER-112233-002"
MENTION="Thomas Jefferson"
GIVEN="Thomas"
MIDDLE=""
SURNAME="Jefferson"/>
<RELINFO ID="REL-112233-355"
RELTYPE="PER-IDENT"
PERID="PER-112233-002"
IDENTID="SSN-112233-075"
SENTID="112233-SENT-002"/>
<RELINFO ID="REL-112233-356"
RELTYPE="PER-IDENT"
PERID="PER-112233-001"
IDENTID="SSN-112233-074"
SENTID="112233-SENT-003"/>
<RELINFO ID="REL-112233-357"
RELTYPE="PER-IDENT"
PERID="PER-112233-001"
IDENTID="SSN-112233-100"
SENTID="112233-SENT-004"/>
</NORMDOC>
112233
开国元勋信用合作社
1212
开国元勋信用合作社
华盛顿/乔治
华盛顿
乔治
111111111
1112223333
杰斐逊/托马斯
杰斐逊
托马斯
222222222
乔治·华盛顿和托马斯·杰斐逊都是开国元勋。
托马斯·杰斐逊的社会保险号码是222-22-2222。
乔治·华盛顿的社会保险号码是111-11-1111。
可以拨打111-222-3333联系乔治·华盛顿。
XSLT
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<!-- Transforms the output from the NLP tool into the appropriate format for storage. -->
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:strip-space elements="*"/>
<!-- Create sub-tags from metadata in ENTINFO -->
<xsl:template match="/NORMDOC">
<xsl:apply-templates select="DOC"/>
<ENTITIES>
<xsl:apply-templates select="ENTINFO"/>
</ENTITIES>
</xsl:template>
<!-- Delete and append subjects, extraneous information gleaned from party tags -->
<xsl:template match="Subject">
<Subject_xref><xsl:value-of select="@xref"/></Subject_xref>
</xsl:template>
<!-- Make a copy of narrative text and strip out label tags -->
<xsl:template match="TXT">
<RAW_TXT>
<xsl:value-of select="."/>
</RAW_TXT>
<xsl:copy>
<xsl:apply-templates/>
</xsl:copy>
</xsl:template>
<xsl:template match="S">
<xsl:copy>
<xsl:apply-templates select="*" mode="extra"/>
</xsl:copy>
</xsl:template>
<xsl:template match="*" mode="extra">
<xsl:element name="{name()}_{@type}">
<xsl:apply-templates/>
</xsl:element>
</xsl:template>
<!-- Append tag labels in metadata -->
<xsl:template match="ENTINFO">
<xsl:copy>
<xsl:for-each select="@*">
<xsl:element name="ENTINFO_{translate(name(), '-', '_')}">
<xsl:value-of select="." />
</xsl:element>
</xsl:for-each>
</xsl:copy>
</xsl:template>
<xsl:template match="/">
<NORMDOC>
<xsl:apply-templates/>
</NORMDOC>
</xsl:template>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
实际产出
<NORMDOC>
<DOC>
<DOCID>112233</DOCID>
<FI>
<FIName>DISCOVER BANK</FIName>
<FITIN>510020270</FITIN>
</FI>
<OIs>
<OI>
<OIName>DISCOVER BANK</OIName>
</OI>
</OIs>
<Subjects>
<Subject_xref>98765</Subject_xref>
<Subject_xref>98876</Subject_xref>
</Subjects>
<RAW_TXT>George Washington and Thomas Jefferson were both founding fathers.Thomas Jefferson has a social security number of 222-22-2222.George Washington has social security number 111-11-1111.George Washington can be reached at 111-222-3333.</RAW_TXT>
<TXT>
<S>
<ENAMEX_PERSON>George Washington</ENAMEX_PERSON>
<ENAMEX_PERSON>Thomas Jefferson</ENAMEX_PERSON>
</S>
<S>
<ENAMEX_PERSON>Thomas Jefferson</ENAMEX_PERSON>
<IDEX_SSN>222-22-2222</IDEX_SSN>
</S>
<S>
<ENAMEX_PERSON>George Washington</ENAMEX_PERSON>
<IDEX_SSN>111-11-1111</IDEX_SSN>
</S>
<S>
<ENAMEX_PERSON>George Washington</ENAMEX_PERSON>
<IDEX_PHONE>111-222-3333</IDEX_PHONE>
</S>
</TXT>
</DOC>
<ENTITIES>
<ENTINFO>
<ENTINFO_ID>PHO-112233-100</ENTINFO_ID>
<ENTINFO_TYPE>PHONE</ENTINFO_TYPE>
<ENTINFO_NORM>(111) 222-3333</ENTINFO_NORM>
<ENTINFO_REFID>PHO-112233-100</ENTINFO_REFID>
<ENTINFO_MENTION>111-222-3333</ENTINFO_MENTION>
</ENTINFO>
<ENTINFO>
<ENTINFO_ID>SSN-112233-075</ENTINFO_ID>
<ENTINFO_TYPE>SSN</ENTINFO_TYPE>
<ENTINFO_NORM>222222222</ENTINFO_NORM>
<ENTINFO_REFID>SSN-112233-075</ENTINFO_REFID>
<ENTINFO_MENTION>social security number of 222-22-2222</ENTINFO_MENTION>
<ENTINFO_SSNTYPE>SSN</ENTINFO_SSNTYPE>
</ENTINFO>
<ENTINFO>
<ENTINFO_ID>SSN-112233-074</ENTINFO_ID>
<ENTINFO_TYPE>SSN</ENTINFO_TYPE>
<ENTINFO_NORM>111111111</ENTINFO_NORM>
<ENTINFO_REFID>SSN-112233-074</ENTINFO_REFID>
<ENTINFO_MENTION>social security number of 111-11-1111</ENTINFO_MENTION>
<ENTINFO_SSNTYPE>SSN</ENTINFO_SSNTYPE>
</ENTINFO>
<ENTINFO>
<ENTINFO_ID>PER-112233-001</ENTINFO_ID>
<ENTINFO_TYPE>PERSON</ENTINFO_TYPE>
<ENTINFO_NORM>Washington, George</ENTINFO_NORM>
<ENTINFO_REFID>PER-112233-001</ENTINFO_REFID>
<ENTINFO_MENTION>George Washington</ENTINFO_MENTION>
<ENTINFO_GIVEN>George</ENTINFO_GIVEN>
<ENTINFO_MIDDLE/>
<ENTINFO_SURNAME>Washington</ENTINFO_SURNAME>
</ENTINFO>
<ENTINFO>
<ENTINFO_ID>PER-112233-002</ENTINFO_ID>
<ENTINFO_TYPE>PERSON</ENTINFO_TYPE>
<ENTINFO_NORM>Jefferson, Thomas</ENTINFO_NORM>
<ENTINFO_REFID>PER-112233-002</ENTINFO_REFID>
<ENTINFO_MENTION>Thomas Jefferson</ENTINFO_MENTION>
<ENTINFO_GIVEN>Thomas</ENTINFO_GIVEN>
<ENTINFO_MIDDLE/>
<ENTINFO_SURNAME>Jefferson</ENTINFO_SURNAME>
</ENTINFO>
</ENTITIES>
</NORMDOC>
<NORMDOC>
<DOC>
<DOCID>112233</DOCID>
<FI>
<FIName>FOUNDING FATHERS CREDIT UNION</FIName>
<FITIN>1212</FITIN>
</FI>
<OIs>
<OI>
<OIName>FOUNDING FATHERS CREDIT UNION</OIName>
</OI>
</OIs>
<Subjects>
<Subject_xref>98765</Subject_xref>
<Subject_xref>98876</Subject_xref>
</Subjects>
<RAW_TXT>George Washington and Thomas Jefferson were both founding fathers.Thomas Jefferson has a social security number of 222-22-2222.George Washington has social security number 111-11-1111.George Washington can be reached at 111-222-3333.</RAW_TXT>
<TXT>
<S>
<ENAMEX_PERSON>George Washington</ENAMEX_PERSON>
<ENAMEX_PERSON>Thomas Jefferson</ENAMEX_PERSON>
</S>
<S>
<ENAMEX_PERSON>Thomas Jefferson</ENAMEX_PERSON>
<IDEX_SSN>222-22-2222</IDEX_SSN>
</S>
<S>
<ENAMEX_PERSON>George Washington</ENAMEX_PERSON>
<IDEX_SSN>111-11-1111</IDEX_SSN>
</S>
<S>
<ENAMEX_PERSON>George Washington</ENAMEX_PERSON>
<IDEX_PHONE>111-222-3333</IDEX_PHONE>
</S>
</TXT>
</DOC>
<ENTITIES>
<ENTINFO>
<ENTINFO_PERSON_NORM>Washington, George</ENTINFO_PERSON_NORM>
<ENTINFO_PERSON_MENTION>George Washington</ENTINFO_PERSON_MENTION>
<ENTINFO_PERSON_GIVEN>George</ENTINFO_PERSON_GIVEN>
<ENTINFO_PERSON_MIDDLE/>
<ENTINFO_PERSON_SURNAME>Washington</ENTINFO_PERSON_SURNAME>
<ENTINFO_SSN_NORM>111111111</ENTINFO_SSN_NORM>
<ENTINFO_SSN_MENTION>social security number of 111-11-1111</ENTINFO_SSN_MENTION>
<ENTINFO_PHONE_NORM>(111) 222-3333</ENTINFO_PHONE_NORM>
<ENTINFO_PHONE_MENTION>111-222-3333</ENTINFO_PHONE_MENTION>
</ENTINFO>
<ENTINFO>
<ENTINFO_PERSON_NORM>Jefferson, Thomas</ENTINFO_PERSON_NORM>
<ENTINFO_PERSON_MENTION>Thomas Jefferson</ENTINFO_PERSON_MENTION>
<ENTINFO_PERSON_GIVEN>Thomas</ENTINFO_PERSON_GIVEN>
<ENTINFO_PERSON_MIDDLE/>
<ENTINFO_PERSON_SURNAME>Jefferson</ENTINFO_PERSON_SURNAME>
<ENTINFO_SSN_NORM>222222222</ENTINFO_SSN_NORM>
<ENTINFO_SSN_MENTION>social security number of 222-22-2222</ENTINFO_SSN_MENTION>
</ENTINFO>
</ENTITIES>
</NORMDOC>
112233
探索银行
510020270
探索银行
98765
98876
乔治·华盛顿和托马斯·杰斐逊都是开国元勋。托马斯·杰斐逊的社会保险号码是222-22-2222。乔治·华盛顿的社会保险号码是111-11-1111。可以拨打111-222-3333联系乔治·华盛顿。
乔治华盛顿
托马斯·杰斐逊
托马斯·杰斐逊
222-22-2222
乔治华盛顿
111-11-1111
乔治华盛顿
111-222-3333
PHO-112233-100
电话
(111) 222-3333
PHO-112233-100
111-222-3333
SSN-112233-075
SSN
222222222
SSN-112233-075
社会保险号码222-22-2222
SSN
SSN-112233-074
SSN
111111111
SSN-112233-074
社会保险号码111-11-1111
SSN
PER-112233-001
人
华盛顿,乔治
PER-112233-001
乔治华盛顿
乔治
华盛顿
PER-112233-002
人
杰斐逊,托马斯
PER-112233-002
托马斯·杰斐逊
托马斯
杰斐逊
预期输出
<NORMDOC>
<DOC>
<DOCID>112233</DOCID>
<FI>
<FIName>DISCOVER BANK</FIName>
<FITIN>510020270</FITIN>
</FI>
<OIs>
<OI>
<OIName>DISCOVER BANK</OIName>
</OI>
</OIs>
<Subjects>
<Subject_xref>98765</Subject_xref>
<Subject_xref>98876</Subject_xref>
</Subjects>
<RAW_TXT>George Washington and Thomas Jefferson were both founding fathers.Thomas Jefferson has a social security number of 222-22-2222.George Washington has social security number 111-11-1111.George Washington can be reached at 111-222-3333.</RAW_TXT>
<TXT>
<S>
<ENAMEX_PERSON>George Washington</ENAMEX_PERSON>
<ENAMEX_PERSON>Thomas Jefferson</ENAMEX_PERSON>
</S>
<S>
<ENAMEX_PERSON>Thomas Jefferson</ENAMEX_PERSON>
<IDEX_SSN>222-22-2222</IDEX_SSN>
</S>
<S>
<ENAMEX_PERSON>George Washington</ENAMEX_PERSON>
<IDEX_SSN>111-11-1111</IDEX_SSN>
</S>
<S>
<ENAMEX_PERSON>George Washington</ENAMEX_PERSON>
<IDEX_PHONE>111-222-3333</IDEX_PHONE>
</S>
</TXT>
</DOC>
<ENTITIES>
<ENTINFO>
<ENTINFO_ID>PHO-112233-100</ENTINFO_ID>
<ENTINFO_TYPE>PHONE</ENTINFO_TYPE>
<ENTINFO_NORM>(111) 222-3333</ENTINFO_NORM>
<ENTINFO_REFID>PHO-112233-100</ENTINFO_REFID>
<ENTINFO_MENTION>111-222-3333</ENTINFO_MENTION>
</ENTINFO>
<ENTINFO>
<ENTINFO_ID>SSN-112233-075</ENTINFO_ID>
<ENTINFO_TYPE>SSN</ENTINFO_TYPE>
<ENTINFO_NORM>222222222</ENTINFO_NORM>
<ENTINFO_REFID>SSN-112233-075</ENTINFO_REFID>
<ENTINFO_MENTION>social security number of 222-22-2222</ENTINFO_MENTION>
<ENTINFO_SSNTYPE>SSN</ENTINFO_SSNTYPE>
</ENTINFO>
<ENTINFO>
<ENTINFO_ID>SSN-112233-074</ENTINFO_ID>
<ENTINFO_TYPE>SSN</ENTINFO_TYPE>
<ENTINFO_NORM>111111111</ENTINFO_NORM>
<ENTINFO_REFID>SSN-112233-074</ENTINFO_REFID>
<ENTINFO_MENTION>social security number of 111-11-1111</ENTINFO_MENTION>
<ENTINFO_SSNTYPE>SSN</ENTINFO_SSNTYPE>
</ENTINFO>
<ENTINFO>
<ENTINFO_ID>PER-112233-001</ENTINFO_ID>
<ENTINFO_TYPE>PERSON</ENTINFO_TYPE>
<ENTINFO_NORM>Washington, George</ENTINFO_NORM>
<ENTINFO_REFID>PER-112233-001</ENTINFO_REFID>
<ENTINFO_MENTION>George Washington</ENTINFO_MENTION>
<ENTINFO_GIVEN>George</ENTINFO_GIVEN>
<ENTINFO_MIDDLE/>
<ENTINFO_SURNAME>Washington</ENTINFO_SURNAME>
</ENTINFO>
<ENTINFO>
<ENTINFO_ID>PER-112233-002</ENTINFO_ID>
<ENTINFO_TYPE>PERSON</ENTINFO_TYPE>
<ENTINFO_NORM>Jefferson, Thomas</ENTINFO_NORM>
<ENTINFO_REFID>PER-112233-002</ENTINFO_REFID>
<ENTINFO_MENTION>Thomas Jefferson</ENTINFO_MENTION>
<ENTINFO_GIVEN>Thomas</ENTINFO_GIVEN>
<ENTINFO_MIDDLE/>
<ENTINFO_SURNAME>Jefferson</ENTINFO_SURNAME>
</ENTINFO>
</ENTITIES>
</NORMDOC>
<NORMDOC>
<DOC>
<DOCID>112233</DOCID>
<FI>
<FIName>FOUNDING FATHERS CREDIT UNION</FIName>
<FITIN>1212</FITIN>
</FI>
<OIs>
<OI>
<OIName>FOUNDING FATHERS CREDIT UNION</OIName>
</OI>
</OIs>
<Subjects>
<Subject_xref>98765</Subject_xref>
<Subject_xref>98876</Subject_xref>
</Subjects>
<RAW_TXT>George Washington and Thomas Jefferson were both founding fathers.Thomas Jefferson has a social security number of 222-22-2222.George Washington has social security number 111-11-1111.George Washington can be reached at 111-222-3333.</RAW_TXT>
<TXT>
<S>
<ENAMEX_PERSON>George Washington</ENAMEX_PERSON>
<ENAMEX_PERSON>Thomas Jefferson</ENAMEX_PERSON>
</S>
<S>
<ENAMEX_PERSON>Thomas Jefferson</ENAMEX_PERSON>
<IDEX_SSN>222-22-2222</IDEX_SSN>
</S>
<S>
<ENAMEX_PERSON>George Washington</ENAMEX_PERSON>
<IDEX_SSN>111-11-1111</IDEX_SSN>
</S>
<S>
<ENAMEX_PERSON>George Washington</ENAMEX_PERSON>
<IDEX_PHONE>111-222-3333</IDEX_PHONE>
</S>
</TXT>
</DOC>
<ENTITIES>
<ENTINFO>
<ENTINFO_PERSON_NORM>Washington, George</ENTINFO_PERSON_NORM>
<ENTINFO_PERSON_MENTION>George Washington</ENTINFO_PERSON_MENTION>
<ENTINFO_PERSON_GIVEN>George</ENTINFO_PERSON_GIVEN>
<ENTINFO_PERSON_MIDDLE/>
<ENTINFO_PERSON_SURNAME>Washington</ENTINFO_PERSON_SURNAME>
<ENTINFO_SSN_NORM>111111111</ENTINFO_SSN_NORM>
<ENTINFO_SSN_MENTION>social security number of 111-11-1111</ENTINFO_SSN_MENTION>
<ENTINFO_PHONE_NORM>(111) 222-3333</ENTINFO_PHONE_NORM>
<ENTINFO_PHONE_MENTION>111-222-3333</ENTINFO_PHONE_MENTION>
</ENTINFO>
<ENTINFO>
<ENTINFO_PERSON_NORM>Jefferson, Thomas</ENTINFO_PERSON_NORM>
<ENTINFO_PERSON_MENTION>Thomas Jefferson</ENTINFO_PERSON_MENTION>
<ENTINFO_PERSON_GIVEN>Thomas</ENTINFO_PERSON_GIVEN>
<ENTINFO_PERSON_MIDDLE/>
<ENTINFO_PERSON_SURNAME>Jefferson</ENTINFO_PERSON_SURNAME>
<ENTINFO_SSN_NORM>222222222</ENTINFO_SSN_NORM>
<ENTINFO_SSN_MENTION>social security number of 222-22-2222</ENTINFO_SSN_MENTION>
</ENTINFO>
</ENTITIES>
</NORMDOC>
112233
开国元勋信用合作社
1212
开国元勋信用合作社
98765
98876
乔治·华盛顿和托马斯·杰斐逊都是开国元勋。托马斯·杰斐逊的社会保险号码是222-22-2222。乔治·华盛顿的社会保险号码是111-11-1111。可以拨打111-222-3333联系乔治·华盛顿。
乔治华盛顿
托马斯·杰斐逊
托马斯·杰斐逊
222-22-2222
乔治华盛顿
111-11-1111
乔治华盛顿
111-222-3333
华盛顿,乔治
乔治华盛顿
乔治
华盛顿
111111111
社会保险号码111-11-1111
(111) 222-3333
111-222-3333
杰斐逊,托马斯
托马斯·杰斐逊
托马斯
杰斐逊
222222222
社会保险号码222-22-2222
考虑XSLT2.0的xsl:for each group
将ENTINFO和REFINFO节点这两个人分组。然而,分组并不简单。我的建议是在REFINFO上运行组,并使用条件和变量帮助映射来自前面同级ENTINFO的所有信息
因此,不要在ENTINFO上应用模板,而是在RELINFO中运行分组操作。顺便说一句,由于张贴的ID不匹配,电话号码无法映射到最终的XML
具体来说,请删除此模板(或保留但多余),并保留所有其他模板
<xsl:template match="ENTINFO">
<xsl:copy>
<xsl:for-each select="@*">
<xsl:element name="ENTINFO_{translate(name(), '-', '_')}">
<xsl:value-of select="." />
</xsl:element>
</xsl:for-each>
</xsl:copy>
</xsl:template>
通常,您可以使用使用
xsl:key
声明的键和key
函数来跟踪交叉引用。至于具体的例子,考虑到长的数字和各种元素,我无法识别存在哪些关系。我想设置各种键应该可以。如果你能解释不同的数字序列或缩短它们,以便更容易识别它们之间的关系,这可能会有所帮助。@MartinHonnen缩短了数字长度,不想减少各种元素,因为我认为它们提供了一些清晰性。现在有意义了吗?谢谢,我想这让我踏上了一条伟大的道路。是否可以更动态地执行此操作?i、 e.无需明确说明