Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml 如何移动子节点及其';使用xslt将属性添加到父节点_Xml_Xslt_Xslt 1.0 - Fatal编程技术网

Xml 如何移动子节点及其';使用xslt将属性添加到父节点

Xml 如何移动子节点及其';使用xslt将属性添加到父节点,xml,xslt,xslt-1.0,Xml,Xslt,Xslt 1.0,我有以下xml <PQIssueInquiry> <PQIssueslist> <transaction id="2013-04-29-05.03.15.644700T01"> <id>2013-04-29-05.03.15.644700T01</id> <priority>999</priorit

我有以下xml

<PQIssueInquiry>
               <PQIssueslist>
              <transaction id="2013-04-29-05.03.15.644700T01">
                <id>2013-04-29-05.03.15.644700T01</id>
                <priority>999</priority>
                <issueID>20130429-152405-DT73606</issueID>
                <subject>Member</subject>
                <issueCategory>MS Care1st Member</issueCategory>
                <issueSubCategory>Demographic Change</issueSubCategory>
                <providerNumber>PCP4</providerNumber>
                <memberNumber>10020*03</memberNumber>
                <businessArea>CSMHCQA</businessArea>
                <type>ISSUE</type>
                <status>CATCHALL</status>
                <groupNumber>COMM*H</groupNumber>
                <lockStatus>ASSIGNED</lockStatus>
                <assignID>DT73606</assignID>
                <queueCode>CATCHALL</queueCode>
                <lockworkFlag>N</lockworkFlag>
                <origUserID>DT73606</origUserID>
                <CFLG>2</CFLG>
              </transaction>

            </PQIssueslist>
          </PQIssueInquiry>

2013-04-29-05.03.15.644700T01
999
20130429-152405-DT73606
成员
第一委员
人口变动
PCP4
10020*03
CSMHCQA
问题
卡察尔
通信*H
分配
DT73606
卡察尔
N
DT73606
2.
现在,我想从上述xml中删除节点PQIssueslist,xml输出应该如下所示:

<PQIssueInquiry>

            <transaction id="2013-04-29-05.03.15.644700T01">
            <id>2013-04-29-05.03.15.644700T01</id>
            <priority>999</priority>
            <issueID>20130429-152405-DT73606</issueID>
            <subject>Member</subject>
            <issueCategory>MS Care1st Member</issueCategory>
            <issueSubCategory>Demographic Change</issueSubCategory>
            <providerNumber>PCP4</providerNumber>
            <memberNumber>10020*03</memberNumber>
            <businessArea>CSMHCQA</businessArea>
            <type>ISSUE</type>
            <status>CATCHALL</status>
            <groupNumber>COMM*H</groupNumber>
            <lockStatus>ASSIGNED</lockStatus>
            <assignID>DT73606</assignID>
            <queueCode>CATCHALL</queueCode>
            <lockworkFlag>N</lockworkFlag>
            <origUserID>DT73606</origUserID>
            <CFLG>2</CFLG>
          </transaction>


      </PQIssueInquiry>

2013-04-29-05.03.15.644700T01
999
20130429-152405-DT73606
成员
第一委员
人口变动
PCP4
10020*03
CSMHCQA
问题
卡察尔
通信*H
分配
DT73606
卡察尔
N
DT73606
2.
我已经做了如下类似的操作来删除指定的节点,但是我得到的异常是“根元素后面的文档中的标记必须格式良好。”

我使用的代码是:

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version = "1.0">

    <xsl:template match="@* | node()">
        <xsl:copy>
            <xsl:apply-templates select="@* | node()" />
        </xsl:copy>
    </xsl:template>

    <xsl:template match="PQIssueslist">

        <xsl:apply-templates select="node()"/>

    </xsl:template>

</xsl:stylesheet>

谢谢你的帮助。我有两个xsl文件,其中第一个文件的输出xml是第二个xsl的输入

第一个xsl文件:

<?xml version="1.0" ?> 
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version = "1.0">

<xsl:variable name="spName" select="//PQ/PQIssueInquiry/storedProcedureName"/>
    <xsl:template match="/">
        <PQIssueslist>
             <xsl:apply-templates select="//results/row" />
         </PQIssueslist>
   </xsl:template>

    <xsl:template match="//results/row">
      <transaction>
              <xsl:attribute name="id"><xsl:value-of select=".//IKEY"/></xsl:attribute>
                <id><xsl:value-of select=".//IKEY"/></id>         
                <priority><xsl:value-of select=".//PRTY"/></priority>
                <issueID><xsl:value-of select=".//ISSUEID"/></issueID>
                <subject><xsl:value-of select=".//SUBJECT"/></subject>
                <issueCategory><xsl:value-of select=".//ISSTYP"/></issueCategory>
                <issueSubCategory><xsl:value-of select=".//ISSCAT1"/></issueSubCategory>
                <providerNumber><xsl:value-of select=".//RELPRV"/></providerNumber>
                <memberNumber><xsl:value-of select=".//RELMEM"/></memberNumber>
                <businessArea><xsl:value-of select=".//UNITCD"/></businessArea>
                <type><xsl:value-of select=".//WRKTYPE"/></type>
                <status><xsl:value-of select=".//STATCD"/></status>
                <groupNumber><xsl:value-of select=".//RELGRP"/></groupNumber>
                <lockStatus><xsl:value-of select=".//LOCKSTAT"/></lockStatus>
                <assignID><xsl:value-of select=".//ASSIGNID"/></assignID>
                <queueCode><xsl:value-of select=".//QUEUECD"/></queueCode>
                <lockworkFlag><xsl:value-of select=".//LOCKWORK_FLG"/></lockworkFlag>
                <origUserID><xsl:value-of select=".//ORIGUSERID"/></origUserID>
        <CFLG><xsl:value-of select=".//INXFLD01"/></CFLG>
        <xsl:if test="$spName = 'PQOCLKP' ">
                <callerType>Other</callerType>
                <contactName><xsl:value-of select=".//CLSTNAME"/>,&#160;<xsl:value-of select=".//CFSTNAME"/></contactName>
                <contactPhone><xsl:value-of select=".//CPHONE"/></contactPhone>
                <contactOrganization><xsl:value-of select=".//CORGNAM"/></contactOrganization>
        </xsl:if>
        </transaction>
           <xsl:if test="$spName != 'PQOCLKP' ">
               <callerType>NotOther</callerType>
           </xsl:if>
            <sort>
                <field><xsl:value-of select=".//FIELD"/></field>
                <ascending><xsl:value-of select=".//ASCENDING"/></ascending>
            </sort>
  </xsl:template>
</xsl:stylesheet>

其他
, 
诺瑟
第二个xsl文件是:

<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version = "1.0">

    <xsl:template match="@* | node()">
        <xsl:copy>
            <xsl:apply-templates select="@* | node()" />
        </xsl:copy>

    </xsl:template>

    <xsl:template match="PQIssueslist">
    <xsl:apply-templates select="node()"/>
    </xsl:template>

</xsl:stylesheet>

第一个XSL文件的示例输入为:

- <ABC>
- <PQIssueInquiry>
  <userID>DT11</userID> 
  <password>ddd</password> 
  <hostAddress>12.34.54</hostAddress> 
  <hostPort>123</hostPort> 
  <storedProcedureName>PQUSERISSLOOKUP</storedProcedureName> 
  <userName>ABC</userName> 
  <fromDate>2013-04-12-00.00.00.000000</fromDate> 
  <toDate>2013-05-11-23.59.59.999999</toDate> 
  </PQIssueInquiry>
- <AWDSRVRunStoredProcedure xmlns:lxslt="http://xml.apache.org/xslt">
  <hostAddress>10.193.236.57</hostAddress> 
  <hostPort>12955</hostPort> 
  <timeout>120000</timeout> 
  <trace>0</trace> 
  <readable>N</readable> 
  <userID>DT77214</userID> 
- <storedProcedure id="DUMMY">
- <row>
  <ISSTYP>MS Care1st Member</ISSTYP> 
  <ISSCAT1>Demographic Change</ISSCAT1> 
  <UNITCD>CSMHCQA</UNITCD> 
  <ORIGUSERID>DT73606</ORIGUSERID> 
  <PRTY>999</PRTY> 
  <WRKTYPE>ISSUE</WRKTYPE> 
  <ASSIGNID>DT73606</ASSIGNID> 
  <RELGRP>COMM*H</RELGRP> 
  <INXFLD01>2</INXFLD01> 
  <SUBJECT>Member</SUBJECT> 
  <QUEUECD>CATCHALL</QUEUECD> 
  <ISSUEID>20130429-152405-DT73606</ISSUEID> 
  <STATCD>CATCHALL</STATCD> 
  <IKEY>2013-04-29-05.03.15.644700T01</IKEY> 
  <RELPRV>PCP4</RELPRV> 
  <RELMEM>10020*03</RELMEM> 
  <LOCKWORK_FLG>N</LOCKWORK_FLG> 
  <LOCKSTAT>ASSIGNED</LOCKSTAT> 
  </row>
-
  </list>
  </ABC>
-
- 
DT11
ddd
12.34.54 
123
PQUSERISSLOOKUP
基础知识
2013-04-12-00.00.00.000000 
2013-05-11-23.59.59.999999 
- 
10.193.236.57 
12955
120000
0
N
DT77214
- 
- 
第一委员
人口变化
CSMHCQA
DT73606
999
问题
DT73606
通信*H
2.
成员
卡察尔
20130429-152405-DT73606
卡察尔
2013-04-29-05.03.15.644700T01
PCP4
10020*03 
N
分配
-

在输入示例的末尾有
,这就是问题所在,与任何XSLT无关。XSLT很好,但您需要提供格式良好的XML输入示例。

前面有一个复制粘贴问题。现在,我已经改正了。根节点是pqisueInquiry。我想将PQIssueslist下的所有元素及其值移动到PQISSUEIQUIRY节点的正下方,并删除PQIssueslist节点。@user3177203,我在您的输入示例中看不到任何更正。如果XML解析器继续出现错误,则需要确保XML输入和XSLT格式正确。我假设你有一个完整的样式表,虽然你也没有发布过,因此无法告诉你错误的来源。谢谢你的回答:由于stackoverflow抛出的错误,我无法编辑问题的描述。如何在问题被问到后将代码添加到线程中..cozz我无法添加代码,因为它有更多的字符。您的问题下方有一个编辑链接,您可以使用该链接编辑问题,包括代码示例。