Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/404.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/7/css/42.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
Javascript 生成要应用于XML文件的XSL_Javascript_Css_Xml_Xslt - Fatal编程技术网

Javascript 生成要应用于XML文件的XSL

Javascript 生成要应用于XML文件的XSL,javascript,css,xml,xslt,Javascript,Css,Xml,Xslt,我有下面的xml,并修改了一个xsl文件,该文件来自我开始学习时遵循的教程。返回的HTML包含我在XSL中指定的字符串,但是没有填充XML文件中的实际值 解决方案可能非常简单,不过现在我需要有人向我指出这一点 XML: dskim@gmail.com 约翰 3. 雌鹿 聊天 120 EHFD 如果没有代理,则留下关闭请求 被另一方删除 XSL: 电邮- 名字: 识别并创建联系人: 姓氏: 媒体类型: 信息: 离职原因: - 我的目标是获取我试图通过XSL检索的字段的文本值,然后再检索一

我有下面的xml,并修改了一个xsl文件,该文件来自我开始学习时遵循的教程。返回的HTML包含我在XSL中指定的字符串,但是没有填充XML文件中的实际值

解决方案可能非常简单,不过现在我需要有人向我指出这一点

XML:


dskim@gmail.com
约翰
3.
雌鹿
聊天
120
EHFD
如果没有代理,则留下关闭请求
被另一方删除
XSL:


电邮-
名字:
识别并创建联系人:
姓氏:
媒体类型:
信息:
离职原因:
- 

我的目标是获取我试图通过XSL检索的字段的文本值,然后再检索一些标记属性。

问题在于XPath。首先,您缺少了
userInfo
步骤,其次您需要一个针对属性的谓词

例如,对于电子邮件地址:

chatTranscript/newParty/userInfo/userData/item[@key="EmailAddress"]
没有名为“EmailAddress”的节点。这里有一个
节点,其@key属性的值为“EmailAddress”


您的其他XPath也有类似的问题。例如,对于其他人,您不仅省略了
userInfo
,而且还省略了
userData

您的计算机存在一些严重的问题。对元素的属性使用谓词(
[…]
)将极大地改进代码

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

  <xsl:output method="text"/>

  <xsl:template match="/chatTranscript/newParty[count(*) > 1]">
    <xsl:variable name="curParty" select="@userId" />
    Email - <xsl:value-of select="userData/item[@key='EmailAddress']"/>
    Fist Name: <xsl:value-of select="userData/item[@key='FirstName']"/>
    Identify Create Contact: <xsl:value-of select="userData/item[@key='IdentifyCreateContact']"/>
    Last Name: <xsl:value-of select="userData/item[@key='LastName']"/>
    Media Type: <xsl:value-of select="userData/item[@key='MediaType']"/>
    Message: <xsl:value-of select="../message[@userId=$curParty]/msgText/text()"/>
    Reason for leaving: <xsl:value-of select="normalize-space(../partyLeft[@userId=$curParty])" />
  </xsl:template>

  <xsl:template match="text()" />

</xsl:stylesheet>

对于以后的文章,请记住XML和XSLT代码不被视为代码片段,因此不能在这里运行。另外,显示预期的输出。谢谢你为什么在这个问题上加上标签?最后,你的标题太笼统了,没有说明你的具体问题。。。我满意地回答了这个问题。尽管@MathiasMüller可能对我的问题或答案的格式有批评,但关键是我们进行了充分的沟通以完成这项工作。不要去抨击(和否决投票)你自己无法回答的问题。@Harriet我根本没有抨击;你一定误解了我(现已删除)的评论。我对这个问题和答案做了一个事实陈述,并提出了改进建议。zx485以礼貌的方式回应了这一评论,并使我确信我的评论部分是不准确的。但这并没有减损一个事实,即您的问题留给读者很大的想象空间(您没有显示预期的输出),并且标题过于笼统(它适用于每一个XSLT问题)。我没有否决你的问题,我觉得我的问题有足够的细节——我试图为xml生成所需的xsl,标题中提到了这一点。此外,标题和正文应该结合在一起,形成一个统一体——引言和更多信息。我觉得我已经做到了。就我而言,我非常怀疑你在这个问题上的行动。随机投票否决他人是一项运动,对那些真正寻求帮助的人毫无益处。它似乎唯一受益的是那些在排行榜上名列前茅的人。@Harriet因为你写的东西(而且只因为你写的东西,而不是作为一个人本身)而受到批评是它不可分割的一部分。没有人喜欢被批评,但总的来说,礼貌的批评会带来更好的问题和答案。你应该认真对待这些评论,努力改进你的问题,而不是亲自攻击我(说我没有能力回答你的问题)。如果你真的认为我在这里所做的任何事情(当然是为了帮助)都是不合适的,请邀请一位版主。谢谢我邀请了一位主持人。
chatTranscript/newParty/userInfo/userData/item[@key="EmailAddress"]
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

  <xsl:output method="text"/>

  <xsl:template match="/chatTranscript/newParty[count(*) > 1]">
    <xsl:variable name="curParty" select="@userId" />
    Email - <xsl:value-of select="userData/item[@key='EmailAddress']"/>
    Fist Name: <xsl:value-of select="userData/item[@key='FirstName']"/>
    Identify Create Contact: <xsl:value-of select="userData/item[@key='IdentifyCreateContact']"/>
    Last Name: <xsl:value-of select="userData/item[@key='LastName']"/>
    Media Type: <xsl:value-of select="userData/item[@key='MediaType']"/>
    Message: <xsl:value-of select="../message[@userId=$curParty]/msgText/text()"/>
    Reason for leaving: <xsl:value-of select="normalize-space(../partyLeft[@userId=$curParty])" />
  </xsl:template>

  <xsl:template match="text()" />

</xsl:stylesheet>
Email - dskim@gmail.com
Fist Name: John
Identify Create Contact: 3
Last Name: Doe
Media Type: chat
Message: ehfdfdfd
Reason for leaving: removed by other party