- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我是 C++ 的新手并继承了以下代码,这些代码应该使用 XSLT 文件转换给定的 XML 以仅吐出文本值。
它可以很好地加载 XML 和 XSLT,并且 transformnode() 调用返回成功,但尚未应用任何转换。底部的原始输出包含完整的原始 XML。
它正在使用 MSXML 3.0。我使用 Xselerator 来验证 XSLT 是否有效且有效(即返回字符串“This is a test message..”)。
这是代码(减去所有错误处理):
IXMLDOMNode *m_pXslt;
ESSXsltData::Initialise(void)
{
IUnknown *l_pUnknown = NULL;
IXMLDOMDocument *l_pXSLDocument = NULL;
HRESULT hr = CoCreateInstance(__uuidof(DOMDocument), NULL, CLSCTX_ALL, IID_IUnknown, (LPVOID *)&l_pUnknown);
hr = l_pUnknown->QueryInterface(IID_IXMLDOMDocument,(LPVOID *)&l_pXSLDocument);
CString l_sFileName(RetrieveXsltFileName().c_str() );
hr = l_pXSLDocument->load(l_vFileName, &l_bSuccess);
hr = l_pXSLDocument->QueryInterface(IID_IXMLDOMNode, (LPVOID *)(&m_pXslt) );
}
HRESULT ESSXsltData::ApplyXslt(const char *p_pszESSXml, std::vector< std::string > &p_CommentLines)
{
IUnknown *l_pUnknown = NULL;
IXMLDOMDocument *l_pDocument = NULL;
if (p_pszESSXml)
{
VARIANT_BOOL l_bSuccess;
HRESULT hr = CoCreateInstance(__uuidof(DOMDocument), NULL, CLSCTX_ALL, IID_IUnknown, (LPVOID *)&l_pUnknown);
hr = l_pUnknown->QueryInterface(IID_IXMLDOMDocument,(LPVOID *)&l_pDocument);
hr = l_pDocument->loadXML(CComBSTR(p_pszESSXml) , &l_bSuccess);
hr = l_pDocument->QueryInterface(IID_IXMLDOMNode, (LPVOID *)(&m_pXslt) );
BSTR l_bsOutput = NULL;
hr = l_pDocument->transformNode(m_pXslt, &l_bsOutput);
COLE2T l_AsciiOutput(l_bsOutput);
log << "AsciiOutput: " << l_AsciiOutput << "\n";
}
}
p_pszESSXml 字符串是:
<ESS><Message>This is a test message...</Message></ESS>
XSLT 是:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl">
<xsl:output method="text" indent="yes"/>
<xsl:template match="ESS">
<xsl:apply-templates select="Message"/>
</xsl:template>
<xsl:template match="Message">
<xsl:value-of select="."/>
</xsl:template>
</xsl:stylesheet>
最佳答案
已修复。
它正在重新分配 m_pXslt 以等于应该验证的 XML。
有人一直在复制粘贴。
关于C++ XLST 转换无法使用 MSXML 3.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3632784/
编辑: 这是我能想到的 lxml 中最小的测试用例(完全用 Python 编写) from lxml import etree xslt_tree = etree.XML('''\
我按照 symfony 教程构建了我的第一个 symfony 项目。当我运行时: ./symfony propel:build-sql 我收到一个错误: [propel-sql] Could not
我是 C++ 的新手并继承了以下代码,这些代码应该使用 XSLT 文件转换给定的 XML 以仅吐出文本值。 它可以很好地加载 XML 和 XSLT,并且 transformnode() 调用返回成功,
我是一名编程爱好者,我从来没有与 DOM 相处得很好,所以我很确定我找不到答案,因为它对一个称职的程序员来说太明显了。 也就是说,互联网上有几个地方明确表示 xalt 样式表生成表单链接(来自 IBM
我只是想就如何改进我编写 XSLT 文件的方式寻求建议。我还想问问有没有人知道如何分离专门用于XSLT文件的CSS文件。任何建议都会对我有很大帮助 在此先感谢大家。
我有一个默认安装的 xampp,它有 php 5.3。我在使用 symfony 框架 CLI 创建数据库表时遇到了一个问题。我正在使用 Windows XP。这是我运行的命令: symfony pr
我计划在 azure 中编写一个 Web 应用程序,但我有一个问题......为了发送电子邮件,我使用了我前段时间编写的类库,我在 xlst 文件中有电子邮件模板,每次我想发送电子邮件时,我都会创建一
如何将 SUM() 函数应用于每个 hours 节点?我将把这个转换后的 XML 保存为 Excel,我希望它嵌入 SUM() 函数。经过研究,似乎有很多方法可以做到这一点,但没有一个真正适用于我的问
我是一名优秀的程序员,十分优秀!