RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题

问题[xml]

Martin Hope
Alexander G.
Asked: 2024-12-20 15:58:16 +0000 UTC

使用 XSLT 从 XML 文件中排除标签

  • 4

有一个 XML 文件(sheet1.xml,xlsx 文件的一部分)包含以下片段:

<c r="A1" t="s">
<v>0</v>
</c>
<c r="B1" t="s">
<v>1</v>
</c>
<c r="C1" t="s">
<v>2</v>
</c>
<c r="D1" s="1">
<v>256000</v>
</c>
<c r="D2" s="2">
<v>257000</v>
</c>

您需要显示所有值:

  1. 包含在标签中<v>,
  2. 但同时删除标签中具有该<c>属性的所有值t="s"

我使用 XSLT 文件解决了问题的第一部分:

<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
                xmlns:x="http://schemas.openxmlformats.org/spreadsheetml/2006/main">

  <xsl:output omit-xml-declaration="yes"/>

  <xsl:template match="/">
    <div>
      <xsl:apply-templates/>
    </div>
  </xsl:template>

  <xsl:template match="x:v">
    <p>
      <xsl:value-of select="." />
    </p>
  </xsl:template>

</xsl:stylesheet>

现在输出是一个包含以下内容的文件:

<div xmlns:x="http://schemas.openxmlformats.org/spreadsheetml/2006/main">
<p>0</p>
<p>1</p>
<p>2</p>
<p>256000</p>
<p>257000</p>
</div>

我希望看到这样的东西:

<div xmlns:x="http://schemas.openxmlformats.org/spreadsheetml/2006/main">
<p>256000</p>
<p>257000</p>
</div>

有没有办法实现这个?

xml
  • 2 个回答
  • 21 Views
Martin Hope
vnwalder
Asked: 2023-12-07 01:14:04 +0000 UTC

根据 url 中的某些参数,使用 XSLT 删除 XML 中不必要的优惠分支

  • 5

有参数卸载货物。该目录包含导出/导入不需要的“已删除”产品。XML 中的源


    <?xml version="1.0" encoding="utf-8"?>
    
    <yml_catalog date="2022-11-21T16:19:01+04:00">
      <shop>
        <name>Magazine</name>
        <company>Magazine</company>
        <url>https://Magazine-tv.ru</url>
        <platform>BSM/Yandex/Market</platform>
        <version>2.7.8</version>
        <currencies>
          <currency id="RUR" rate="1" />
        </currencies>
        <categories>
          <category id="189">АНD видеорегистраторы</category>
          <category id="190" parentId="189">4-х канальные</category>
          <category id="193">AHD видеокамеры</category>
          <category id="194" parentId="193">Купольные внутренние камеры</category>
        </categories>
        <enable_auto_discounts>true</enable_auto_discounts>
        <offers>
          <offer id="1130" available="true">
            <url>https://Magazine-tv.ru/catalog/aksessuary_dlya_videonablyudeniya/obektivy_1/1130/</url>
            <price>483</price>
            <currencyId>RUR</currencyId>
            <categoryId>235</categoryId>
            <picture>https://Magazine-tv.ru/upload/iblock/980/v84vhfaf1brwkfgq7o7kazaxxcmqsn9l/e3386623_739c_47d0_a79e_c724b20b9490_71a6e215_e657_11e8_badc_74ea3a85ced2.jpeg</picture>
            <name>L-28</name>
            <description>Объектив с фокусным расстоянием 2.8 мм.</description>
            <param name="Артикул">N-000011709</param>
            <param name="Фокусное расстояние">2.8 мм</param>
            <param name="Тип резьбы">M12</param>
            <param name="Страна производства">Китай</param>
            <param name="Срок гарантии">18 мес</param>
            <weight>0.006</weight>
          </offer>
          <offer id="1131" available="true">
            <url>https://Magazine-tv.ru/catalog/aksessuary_dlya_videonablyudeniya/priemoperedatchiki/1131/</url>
            <price>480</price>
            <currencyId>RUR</currencyId>
            <categoryId>236</categoryId>
            <picture>https://Magazine-tv.ru/upload/iblock/fa1/4ymmfwmsy4823hiqbxgqw25o5a8vyn5d/bf6a5d4d_6488_11e8_98ee_74ea3a85ced2_a7283f85_e641_11e8_badc_74ea3a85ced2.png</picture>
            <name>T-305AH</name>
            <description>Комплект для передачи видеосигнала по витой паре.
    Расстояние передачи видеосигнала до 440 м.
    Встроенная защита от перенапряжения.</description>
            <param name="Артикул">ПЦ000016510</param>
            <param name="Передача видеосигнала">AHD/TVI/CVI/CVBS</param>
            <param name="Передача видеосигнала для AHD">720p AHD до 320 м, 960p ix AHD до 180 м, 4к AHD 150 м</param>
            <param name="Передача видеосигнала для TVI">720p TVI до 250 мix5 Mpix TVI до 180 м, 4к TVI 130 м</param>
            <param name="Передача видеосигнала для CVI">720p CVI до 440 м, 1080p, 4K CVI до 200 м</param>
            <weight>0.06</weight>
          </offer>
          <offer id="1132" available="true">
            <url>https://Magazine-tv.ru/catalog/aksessuary_dlya_videonablyudeniya/obektivy_1/1132/</url>
            <price>470</price>
            <currencyId>RUR</currencyId>
            <categoryId>235</categoryId>
            <picture>https://Magazine-tv.ru/upload/iblock/20c/aqkslnxxd0tv8pexrhhfs1edalkf2607/759615c6_3728_4134_b452_5c67cb82e251_9cd3bd59_e657_11e8_badc_74ea3a85ced2.jpeg</picture>
            <name>L-36</name>
            <description>Объектив с фокусным расстоянием 3.6 мм.</description>
            <param name="Артикул">N-000012222</param>
            <param name="Фокусное расстояние">3.6 мм</param>
            <param name="Тип резьбы">M12</param>
            <param name="Страна производства">Китай</param>
            <param name="Срок гарантии">18 мес</param>
            <weight>0.006</weight>
          </offer>
          <offer id="1134" available="true">
            <url>https://Magazine-tv.ru/catalog/aksessuary_dlya_videonablyudeniya/razemy/1134/</url>
            <price>40</price>
            <currencyId>RUR</currencyId>
            <categoryId>240</categoryId>
            <picture>https://Magazine-tv.ru/upload/iblock/a75/6fiitvnye4tn5zfqwy25cga0fr7jlqh8/57cb449d_5e89_11e8_8d06_74ea3a85ced2_0b320675_e8a0_11e8_8d2a_74ea3a85ced2.jpeg</picture>
            <name>Штекер BNC с пружиной металл</name>
            <description>BNC разъем под винт с пружиной металл предназначен для подключения коаксиального кабеля c волновым сопротивлением 50 и 75 Ом, диаметром до 7 мм, к видеокамерам, видеорегистраторам, мониторам и другим радиоэлектронным устройствам. Такой способ крепления значительно проще и быстрее, чем пайка, его надежность и качество соединения остаются на неизменно высоком уровне. Металлический колпачок с пружиной защищает соединения и предотвращает кабель от перегиба в месте крепления к разъему</description>
            <param name="Артикул">ПЦ000016393_340</param>
            <param name="Срок гарантии">18 мес</param>
            <weight>0.022</weight>
          </offer>
          <offer id="1136" available="true">
            <url>https://Magazine-tv.ru/catalog/aksessuary_dlya_videonablyudeniya/priemoperedatchiki/1136/</url>
            <price>4980</price>
            <currencyId>RUR</currencyId>
            <categoryId>236</categoryId>
            <picture>https://Magazine-tv.ru/upload/iblock/c9f/jz7jou56cvzenmjp7fguzxkh0bwduume/e17eba8c_6ef1_11e8_88a8_74ea3a85ced2_80982677_e658_11e8_badc_74ea3a85ced2.jpeg</picture>
            <name>T-315T</name>
            <description>Одноканальный передатчик видео сигнала, предназначен для передачи сигнала совместно с пассивным приемником T-305AH</description>
            <param name="Артикул">ПЦ000016645</param>
            <param name="Передача видеосигнала для AHD">AHD 720p до 500м, 1080p до 360 м, 5Mp до 250м (с пассивным приемником T-305AH), AHD 720p до 700 м, 1080p до 470 м (с активным приемником)</param>
            <param name="Передача видеосигнала для TVI">TVI 720p/1080p до 320 м (с пассивным приемником T-305AH), TVI 720p/1080p до 400 м (с активным приемником)</param>
            <weight>0.05</weight>
          </offer>
          <offer id="1138" available="true">
            <url>https://Magazine-tv.ru/catalog/oborudovanie_snyatoe_s_proizvodstva/snyato_s_proizvodstva_5/1138/</url>
            <price>13773</price>
            <currencyId>RUR</currencyId>
            <categoryId>327</categoryId>
            <picture>https://Magazine-tv.ru/upload/iblock/bd7/6ead2u8tgz3ddv7lqobms33fzapozq4x/63b1721e_0f11_11e7_8f4a_d850e60dd564_1f9994c7_a9cb_11e8_bd2f_74ea3a85ced2.jpeg</picture>
            <name>R-41F</name>
            <description>Гибридный 4-х канальный видеорегистратор:</description>
            <param name="Артикул">04-41-420-4201-71</param>
            <param name="Процессор">Hi3521A</param>
            <param name="Видеокодек сжатия">H.264 Hight Profile</param>
            <param name="Видеовход">BNC x 4 (композитный 1.0 Vp-p 75 Ом)</param>     
            <weight>1.64</weight>
          </offer>   
        </offers>
      </shop>
    </yml_catalog>

我尝试从这里的几个答案中收集类似的内容,但是要么我只删除网址,要么我只选择网址本身,我仍然找不到如何从参数切换到报价本身。您需要删除网址中包含“oborudovanie_snyatoe_s_proizvodstva”的报价。尝试过这个:

<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="xml" omit-xml-declaration="no" encoding="UTF-8" indent="yes"/>
    <xsl:strip-space elements="*"/>

    <xsl:template match="@*|node()">
        <xsl:copy>
            <xsl:apply-templates select="@*|node()"/>
        </xsl:copy>
    </xsl:template>
<!--<xsl:for-each select="-->
    <xsl:template match="offer/url[contains(text(),'snyato')]"/>
    
</xsl:stylesheet>

输出应该是相同的 XML,但没有不必要的报价。请帮帮我。PS> 我认为 xsl 版本在这里不起作用。

xml
  • 1 个回答
  • 28 Views
Martin Hope
Arsusen
Asked: 2023-11-03 02:25:35 +0000 UTC

如何从 SOAP 请求中获取字符串

  • 5

实际上是什么问题,我向Web服务Web服务发出了POST请求并收到了响应

要求

--> POST https://www.dataaccess.com/webservicesserver/NumberConversion.wso
Content-Type: text/xml
Content-Length: 247
Accept-Charset: utf-8
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
   <soap:Body>
      <NumberToWords xmlns="http://www.dataaccess.com/webservicesserver/">
         <ubiNum>1000</ubiNum>
      </NumberToWords>
   </soap:Body>
</soap:Envelope>
--> END POST (247-byte body)

回答

<-- 200 https://www.dataaccess.com/webservicesserver/NumberConversion.wso (1333ms)
cache-control: private, max-age=0
content-type: text/xml; charset=utf-8
vary: Accept-Encoding
server: Server
web-service: DataFlex 19.1
x-powered-by: ASP.NET
date: Thu, 02 Nov 2023 15:52:53 GMT
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <m:NumberToWordsResponse xmlns:m="http://www.dataaccess.com/webservicesserver/">
      <m:NumberToWordsResult>one thousand</m:NumberToWordsResult>
    </m:NumberToWordsResponse>
  </soap:Body>
</soap:Envelope>
<-- END HTTP (344-byte body)

从这个答案中我想得到“一千”我该怎么做?

代码接口

import retrofit2.Response
import retrofit2.http.Body
import retrofit2.http.Headers
import retrofit2.http.POST


interface soapAPI {

    @Headers(
        "Content-Type: text/xml",
        "Accept-Charset: utf-8"
    )
    @POST("webservicesserver/NumberConversion.wso")
    suspend fun sendApi(@Body envelope: SoapEnvelope): Response<output>
}

请求代码

import org.simpleframework.xml.Element
import org.simpleframework.xml.Namespace
import org.simpleframework.xml.Root

@Namespace(prefix = "soap", reference = "http://schemas.xmlsoap.org/soap/envelope/")
@Root(name = "Envelope")
data class SoapEnvelope(
    @field:Element(name = "soap:Body", required = false)
    var body: SoapBody? = null
)

@Root(name = "soap:Body", strict = false)
data class SoapBody(
    @field:Element(name = "NumberToWords")
    var numberToWords: NumberToWords? = null
)

@Root(name = "NumberToWords", strict = false)
@Namespace(reference = "http://www.dataaccess.com/webservicesserver/")
data class NumberToWords(
    @field:Element(name = "ubiNum", required = false)
    var ubiNum: String? = null
)

用于获取答案的数据类(可能这是我的代码的弱点)

data class output(
    val ubiNum: String
)

改造2、okHttp3、simpleXML

val interceptor = HttpLoggingInterceptor()
        interceptor.level = HttpLoggingInterceptor.Level.BODY

        val client = OkHttpClient.Builder()
            .addInterceptor(interceptor)
            .build()

        val retrofit = Retrofit.Builder()
            .baseUrl("https://www.dataaccess.com/")
            .client(client)
            .addConverterFactory(SimpleXmlConverterFactory.create())
            .build()

        val productApi = retrofit.create(soapAPI::class.java)

        CoroutineScope(Dispatchers.IO).launch {
            val envelope = SoapEnvelope(
                body = SoapBody(
                    numberToWords = NumberToWords("1000")
                )
            )
            Log.d("check", "перед ошибкой")
            val response = productApi.sendApi(envelope)
            Log.d("check", "после ошибки") //это не выполняется
            if (response.isSuccessful){
                val output = response.body()
                Log.d("check", "${output}") 
            }
            else {
                val errorBody = response.errorBody()
                Log.d("check", "ошибка")// выполняется если неправильный запрос
            }
        }

当代码 200 发生致命错误并且应用程序崩溃时

FATAL EXCEPTION: DefaultDispatcher-worker-1
Process: com.example.myapplication, PID: 10024
java.lang.RuntimeException: org.simpleframework.xml.core.ElementException: Element 'Body' does not have a match in class com.example.myapplication.output at line -1
    at retrofit2.converter.simplexml.SimpleXmlResponseBodyConverter.convert(SimpleXmlResponseBodyConverter.java:45)
    at retrofit2.converter.simplexml.SimpleXmlResponseBodyConverter.convert(SimpleXmlResponseBodyConverter.java:23)
    at retrofit2.OkHttpCall.parseResponse(OkHttpCall.java:243)
    at retrofit2.OkHttpCall$1.onResponse(OkHttpCall.java:153)
    at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:504)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644)
    at java.lang.Thread.run(Thread.java:1012)
    Suppressed: kotlinx.coroutines.DiagnosticCoroutineContextException: [StandaloneCoroutine{Cancelling}@a4ec63, Dispatchers.IO]
Caused by: org.simpleframework.xml.core.ElementException: Element 'Body' does not have a match in class com.example.myapplication.output at line -1
    at org.simpleframework.xml.core.Composite.readElement(Composite.java:527)
    at org.simpleframework.xml.core.Composite.readElements(Composite.java:445)
    at org.simpleframework.xml.core.Composite.access$400(Composite.java:59)
    at org.simpleframework.xml.core.Composite$Injector.read(Composite.java:1433)
    at org.simpleframework.xml.core.Composite.read(Composite.java:201)
    at org.simpleframework.xml.core.Composite.read(Composite.java:148)
    at org.simpleframework.xml.core.Traverser.read(Traverser.java:92)
    at org.simpleframework.xml.core.Persister.read(Persister.java:625)
    at org.simpleframework.xml.core.Persister.read(Persister.java:606)
    at org.simpleframework.xml.core.Persister.read(Persister.java:584)
    at org.simpleframework.xml.core.Persister.read(Persister.java:562)
    at retrofit2.converter.simplexml.SimpleXmlResponseBodyConverter.convert(SimpleXmlResponseBodyConverter.java:37)

不要严格评判,我是第一次做这样的事情,很多东西还是不明白,还想请教一下哪里可以得到这方面的资料,谢谢。

xml
  • 1 个回答
  • 24 Views
Martin Hope
ArtyomStepchuk
Asked: 2023-10-04 00:03:48 +0000 UTC

XML 文件中的西里尔字母

  • 5

使用 get 请求检索 XML 文件时出现问题。我无法更改该文件。您只能接收它。

http.get(Uri.http('www.cbr.ru', 'scripts/XML_daily.asp')).then((res) async {
  setState(() {
    xmlData = XmlDocument.parse(res.body);
    getDateOfUpdate(xmlData);
  });
});

所有西里尔字符均已替换为象形文字(例如,Àçåðáàéäæàíñêèé màíàò)。

这是 XML 文件:

所有西里尔字符均已替换为象形文字 (Àçåðáàéäæàíñêèé màíàò)

我怎样才能解决这个问题?

xml
  • 1 个回答
  • 69 Views
Martin Hope
Last1k
Asked: 2023-09-28 23:35:18 +0000 UTC

将 XML 转换为另一种 XML

  • 6

由此:

<cs:message xmlns:cs="http://www.URL.ru">
    <cs:header app-from="sql2" app-to="common/send-outgoing-message"
        correlation-id="ID:10424982-83.139.14.107(f4:d7:e7:30:bf:fb)-61573-1554201529201"
        destination="re1"
        message-id="ID:10425004-83.139.14.107(f4:d7:e7:30:bf:fb)-61573-1554201529551"
        submit-timestamp="2019-04-02 14:38:49" type="Status"/>
    <cs:status status="Executed">
        <cs:param name="Result" type="XML">
            <cs:value>
                <records>
                    <record number="1">
                        <ID>458161462</ID>
                        <SERVICE_ID>612911</SERVICE_ID>
                        <MSISDN>37477704529</MSISDN>
                        <BODY>&lt;mdata
                            data="000000DD000000040000000010B51C920005005768617473417070000101333734373737303435323900030000003139303430323130343834363030302B0001000000993C233E20596F757220576861747341707020636F64653A203937332D3735350A0A596F752063616E20616C736F20746170206F6E2074686973206C696E6B20746F2076657269667920796F75722070686F6E653A20762E77686174736170702E636F6D2F3937333735350A0A446F6E2774207368617265207468697320636F64652077697468206F74686572730A3473674C71317035735636"
                            description="(#) Your WhatsApp code: 973-755 You can also tap on this
                            link to verify your phone: v.whatsapp.com/973755 Don't share this code
                            with others 4sgLq1p5sV6"/&gt;</BODY>
                        <PRIORITY>1</PRIORITY>
                        <DELIVERY_REPORT>0</DELIVERY_REPORT>
                        <SPLITTING>null</SPLITTING>
                        <PREFERRED_MODULE_NAME>lcrrouter1</PREFERRED_MODULE_NAME>
                        <PREFERRED_USER_FROM>WhatsApp</PREFERRED_USER_FROM>
                        <STATUS_ID>0</STATUS_ID>
                        <TRANSMISSION_TRIALS>0</TRANSMISSION_TRIALS>
                        <IN_SMS_EXT_ID>null</IN_SMS_EXT_ID>
                        <CHARGING>null</CHARGING>
                        <WCS_CONTENT_TYPE_ID>12</WCS_CONTENT_TYPE_ID>
                        <FLASH_SMS>0</FLASH_SMS>
                        <ENCODING>0</ENCODING>
                        <PARTNER_CHARGE>0</PARTNER_CHARGE>
                        <PARTNER_ID>21927</PARTNER_ID>
                    </record>
                    <record number="2">
                        <ID>458161464</ID>
                        <SERVICE_ID>638118</SERVICE_ID>
                        <MSISDN>37493765423</MSISDN>
                        <BODY>Mekangamya ogtagorcman kod - 3137</BODY>
                        <PRIORITY>1</PRIORITY>
                        <DELIVERY_REPORT>1</DELIVERY_REPORT>
                        <SPLITTING>null</SPLITTING>
                        <PREFERRED_MODULE_NAME>armentel-smpp</PREFERRED_MODULE_NAME>
                        <PREFERRED_USER_FROM>9999</PREFERRED_USER_FROM>
                        <STATUS_ID>0</STATUS_ID>
                        <TRANSMISSION_TRIALS>0</TRANSMISSION_TRIALS>
                        <IN_SMS_EXT_ID>12345</IN_SMS_EXT_ID>
                        <CHARGING>1</CHARGING>
                        <WCS_CONTENT_TYPE_ID>10</WCS_CONTENT_TYPE_ID>
                        <FLASH_SMS>0</FLASH_SMS>
                        <ENCODING>0</ENCODING>
                        <PARTNER_CHARGE>0</PARTNER_CHARGE>
                        <PARTNER_ID>20148</PARTNER_ID>
                    </record>
                </records>
            </cs:value>
        </cs:param>
    </cs:status>
</cs:message>

你需要这样做:

<cs:messages xmlns:cs="http://www.URL.ru">
    <cs:message xmlns:cs="http://www.URL.ru">
        <cs:header charging="false" content-type="SubmitSM" delivery-notification-requested="false" data="000000DD000000040000000010B51C920005005768617473417070000101333734373737303435323900030000003139303430323130343834363030302B0001000000993C233E20596F757220576861747341707020636F64653A203937332D3735350A0A596F752063616E20616C736F20746170206F6E2074686973206C696E6B20746F2076657269667920796F75722070686F6E653A20762E77686174736170702E636F6D2F3937333735350A0A446F6E2774207368617265207468697320636F64652077697468206F74686572730A3473674C71317035735636"
            description="(#) Your WhatsApp code: 973-755 You can also tap on this link to verify your phone: v.whatsapp.com/973755 Don't share this code with others 4sgLq1p5sV6" destination="lcrrouter1" direct-display="false"
            out-sms-id="458161462" partner-id="21927" priority="1" real-module-name="lcrrouter1"
            reply-to="@re-stat$common|Transmitted@re-stat-transmitted$common" service-id="612911"
            source-ton="5" type="User" user-from="WhatsApp" user-to="37477704529"/>
        <cs:body>000000DD000000040000000010B51C920005005768617473417070000101333734373737303435323900030000003139303430323130343834363030302B0001000000993C233E20596F757220576861747341707020636F64653A203937332D3735350A0A596F752063616E20616C736F20746170206F6E2074686973206C696E6B20746F2076657269667920796F75722070686F6E653A20762E77686174736170702E636F6D2F3937333735350A0A446F6E2774207368617265207468697320636F64652077697468206F74686572730A3473674C71317035735636</cs:body>
    </cs:message>
    <cs:message xmlns:cs="http://www.wsoft.ru">
        <cs:header charging="true" content-type="PlainText" delivery-notification-requested="true"
            destination="armentel-smpp" direct-display="false"
            out-sms-id="458161464" partner-id="20148" priority="1" real-module-name="armentel-smpp"
            reply-to="@re-stat$common|Transmitted@re-stat-transmitted$common" service-id="638118"
            source-ton="0" type="User" user-from="9999" user-to="37493765423#12345"/>
        <cs:body>Mekangamya ogtagorcman kod - 3137</cs:body>
    </cs:message>
</cs:messages>

我只设法显示第一个文档中的值,但我不明白如何删除不必要的数据(例如 SPLITTING、SERVICE_ID,这些数据不在应该获取的文档中) ,如何更改现有数据,例如原始文档中的 CHARGING NULL ,以及所需的 =true )以及如何添加正文和标题。

我的代码:

<xsl:stylesheet version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="xml" version="1.0" encoding="UTF-8"/>
    <xsl:template match="record">
        <xsl:copy>
            <xsl:for-each select="*">
                <xsl:attribute name="{local-name(.)}">
                    <xsl:value-of select="."/>
                </xsl:attribute>
                <xsl:variable name="elem-name" select="local-name(.)"/>
                <xsl:for-each select="@*">
                    <xsl:attribute name="{concat($elem-name,'-',local-name(.))}">
                        <xsl:value-of select="."/>
                    </xsl:attribute>
                </xsl:for-each>
            </xsl:for-each>
        </xsl:copy>
    </xsl:template>
</xsl:stylesheet>
xml
  • 1 个回答
  • 51 Views

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    我看不懂措辞

    • 1 个回答
  • Marko Smith

    请求的模块“del”不提供名为“default”的导出

    • 3 个回答
  • Marko Smith

    "!+tab" 在 HTML 的 vs 代码中不起作用

    • 5 个回答
  • Marko Smith

    我正在尝试解决“猜词”的问题。Python

    • 2 个回答
  • Marko Smith

    可以使用哪些命令将当前指针移动到指定的提交而不更改工作目录中的文件?

    • 1 个回答
  • Marko Smith

    Python解析野莓

    • 1 个回答
  • Marko Smith

    问题:“警告:检查最新版本的 pip 时出错。”

    • 2 个回答
  • Marko Smith

    帮助编写一个用值填充变量的循环。解决这个问题

    • 2 个回答
  • Marko Smith

    尽管依赖数组为空,但在渲染上调用了 2 次 useEffect

    • 2 个回答
  • Marko Smith

    数据不通过 Telegram.WebApp.sendData 发送

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5