如何在xslt中转换重复的xml节点并在新行中显示值

时间:2015-07-29 21:36:26

标签: xml xslt

我有一个XML,当我转换它时,我希望结果列在新行的列表中。子节点具有相同的名称。

<books>
<bookname>Java</bookname>
<bookname>AJAX</bookname>
</books>

XSLT转换后的预期结果:

  • Java
  • AJAX

2 个答案:

答案 0 :(得分:0)

试试这个

        <xsl:for-each select="bookname">
                <xsl:value-of select="text()"/>
                <xsl:text>&#10;</xsl:text>
        </xsl:for-each>

答案 1 :(得分:0)

try
{
    System.Net.Http.HttpClient client;
    //HttpClient uses the HttpMessageHandler pipeline for sending and receiving requests
    //WebRequestHandler derives from HttpClientHandler but adds properties that generally only are available on full .NET
    System.Net.Http.WebRequestHandler wrHandler = new System.Net.Http.WebRequestHandler();
    System.Security.Cryptography.X509Certificates.X509Certificate x509cert = System.Security.Cryptography.X509Certificates.X509Certificate2.CreateFromCertFile("MyClientCertificate.crt");
    wrHandler.ClientCertificates.Add(x509cert);
    client = new System.Net.Http.HttpClient(wrHandler);

    //THIS SKIPS SERVER CERTIFICATE                    
    System.Net.ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
    System.Net.Http.HttpRequestMessage request = new System.Net.Http.HttpRequestMessage();
    request.Method = System.Net.Http.HttpMethod.Post;
    request.RequestUri = new System.Uri("https://192.168.12.12:3333/invoke/wm.PartnerMgr.flows.UCLR.0000000001:ORDERS");
    request.Content = new System.Net.Http.StringContent(CtrXMLToSendContent.Text, Encoding.UTF8, CtrClient1MediaType.Text);               

    System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Ssl3 | System.Net.SecurityProtocolType.Tls;

    Task<System.Net.Http.HttpResponseMessage> taskResponse = client.SendAsync(request);
    if (taskResponse.Wait(-1)) //-1 = infinite
    {
        //Response received
        System.Net.Http.HttpResponseMessage response = taskResponse.Result;
        TextResponseData.Text = response.ToString();
        Task<String> taskResponseStr = response.Content.ReadAsStringAsync();
        taskResponseStr.Wait();
        String responseContent = taskResponseStr.Result;
        TextResponseContent.Text = responseContent;
    }
    else
    {
        TextClient1Infolog.AppendText("Wait ");
    }
}
catch (Exception _e)
{
    TextClient1Infolog.AppendText("Error :" + Environment.NewLine);
    TextClient1Infolog.AppendText(_e.ToString());
}