小团队兼职做网站网站备案号图标

张小明 2026/1/11 14:46:47
小团队兼职做网站,网站备案号图标,孙红雷做的二手车网站,湖北省和住房建设厅官方网站ohos-libxslt 是为 OpenHarmony 平台编译的 libxslt XSLT 转换库。本文档详细介绍如何在鸿蒙PC上安装和使用官方适配完成的 libxslt 库#xff0c;包括 HNP 包的打包、安装和使用方法。 #x1f4cb; 目录 一、项目概述二、为什么需要 HNP 包三、HNP 包打包方法四、安装与使…ohos-libxslt是为 OpenHarmony 平台编译的 libxslt XSLT 转换库。本文档详细介绍如何在鸿蒙PC上安装和使用官方适配完成的 libxslt 库包括 HNP 包的打包、安装和使用方法。 目录一、项目概述二、为什么需要 HNP 包三、HNP 包打包方法四、安装与使用五、使用示例六、常见问题七、总结与最佳实践八、参考资料一、项目概述1.1 libxslt 库简介libxslt是一个基于 libxml2 的 XSLTeXtensible Stylesheet Language Transformations处理器。XSLT 是一种用于将 XML 文档转换为其他格式如 HTML、XML、文本等的语言。核心特性XSLT 转换完整的 XSLT 1.0 实现XML 转换将 XML 转换为 HTML、XML、文本等格式XPath 支持基于 libxml2 的 XPath 支持⚡高性能针对大型 XML 文档优化扩展函数支持 EXSLT 扩展函数集标准兼容完全符合 XSLT 1.0 和 XPath 1.0 标准主要应用场景XML 到 HTML 的转换XML 文档格式转换数据格式转换和报告生成Web 内容生成文档处理和发布1.2 项目信息项目信息详情项目名称ohos-libxslt版本1.1.43libxslt 官方版本许可证MIT License目标平台鸿蒙PC (aarch64-linux-ohos)源码仓库https://gitlab.gnome.org/GNOME/libxslt适配仓库https://github.com/Harmonybrew/ohos-libxslt预构建包https://github.com/Harmonybrew/ohos-libxslt/releases编译方式交叉编译Cross Compilation使用 CMake依赖库libxml21.3 libxslt 核心功能libxslt 提供的主要功能模块XSLT 转换执行 XSLT 样式表转换 XML 文档EXSLT 扩展支持 EXSLT 扩展函数集日期、数学、字符串等XPath 支持基于 libxml2 的完整 XPath 1.0 支持样式表编译预编译 XSLT 样式表以提高性能参数传递支持向 XSLT 样式表传递参数输出格式支持 XML、HTML、文本等多种输出格式1.4 为什么需要 ohos-libxslt在鸿蒙PC上进行开发时我们经常需要✅XML 转换将 XML 文档转换为其他格式✅数据转换在不同数据格式间进行转换✅报告生成从 XML 数据生成 HTML 报告✅开发工具链作为完整的开发工具链的一部分二、为什么需要 HNP 包2.1 系统安全限制重要说明在鸿蒙PC上由于系统安全规格限制等原因暂不支持通过解压 配 PATH的方式直接使用 tar.gz 包。这意味着❌ 不能直接解压 tar.gz 包到任意目录❌ 不能通过设置 PATH 环境变量来使用✅ 必须打包成 HNPHarmonyOS Native Package格式才能正常使用2.2 HNP 包的优势HNP 包是鸿蒙PC的官方包管理格式具有以下优势✅系统集成与鸿蒙PC的包管理系统集成✅安全可靠通过官方工具安装符合系统安全规范✅易于管理支持安装、卸载、更新等操作✅路径规范统一安装在/data/service/hnp/目录下2.3 其他平台的使用方式在鸿蒙开发板上可以使用传统的解压 配 PATH方式# 使用 hdc 推送文件到设备hdcfilesend libxslt-*-ohos-arm64.tar.gz /data# 进入设备 shellhdc shell# 解压并配置cd/datatar-zxf libxslt-*-ohos-arm64.tar.gzexportPATH$PATH:/data/libxslt-*-ohos-arm64/binexportLD_LIBRARY_PATH$LD_LIBRARY_PATH:/data/libxslt-*-ohos-arm64/lib三、HNP 包打包方法3.1 准备工作在开始打包之前需要准备以下内容预构建的 tar.gz 包从 release 页面 下载libxml2 库libxslt 依赖 libxml2需要先安装 libxml2hnpcli 工具鸿蒙PC的包管理工具打包脚本用于自动化打包过程3.2 下载预构建包# 下载 libxslt 预构建包wgethttps://github.com/Harmonybrew/ohos-libxslt/releases/download/v1.1.43/libxslt-1.1.43-ohos-arm64.tar.gz3.3 创建打包脚本创建一个pack_hnp.sh脚本来自动化打包过程#!/bin/bashset-e# 配置变量LIBXSLT_VERSION1.1.43TAR_FILElibxslt-${LIBXSLT_VERSION}-ohos-arm64.tar.gzEXTRACT_DIRlibxslt-${LIBXSLT_VERSION}-ohos-arm64HNP_PUBLIC_PATH/data/service/hnpLIBXSLT_INSTALL_PATH${HNP_PUBLIC_PATH}/libxslt.org/libxslt_${LIBXSLT_VERSION}OUTPUT_DIRoutputWORKDIR$(pwd)# 创建输出目录mkdir-p${OUTPUT_DIR}# 解压 tar.gz 包if[!-d${EXTRACT_DIR}];thenecho解压${TAR_FILE}...tar-zxf${TAR_FILE}fi# 创建安装目录echo创建安装目录...mkdir-p${LIBXSLT_INSTALL_PATH}/{bin,lib,include}# 复制文件echo复制文件...cp-r${EXTRACT_DIR}/bin/*${LIBXSLT_INSTALL_PATH}/bin/2/dev/null||truecp-r${EXTRACT_DIR}/lib/*${LIBXSLT_INSTALL_PATH}/lib/2/dev/null||truecp-r${EXTRACT_DIR}/include/*${LIBXSLT_INSTALL_PATH}/include/2/dev/null||trueif[-f${EXTRACT_DIR}/Copyright];thencp${EXTRACT_DIR}/Copyright${LIBXSLT_INSTALL_PATH}/fi# 创建 hnp.jsonecho创建 hnp.json...cat${LIBXSLT_INSTALL_PATH}/hnp.jsonEOF { type: hnp-config, name: libxslt, version: 1.1.43, install: { links: [ { source: bin/xsltproc, target: xsltproc } ] } } EOF# 设置执行权限chmodx${LIBXSLT_INSTALL_PATH}/bin/*2/dev/null||true# 使用 hnpcli 打包如果可用ifcommand-v hnpcli/dev/null;thenecho使用 hnpcli 打包...hnpcli pack -i${LIBXSLT_INSTALL_PATH}-o${OUTPUT_DIR}/echoHNP 包已生成:${OUTPUT_DIR}/libxslt.hnpelseecho警告: 未找到 hnpcli 工具跳过 HNP 包生成echo请手动使用 hnpcli 打包:echo hnpcli pack -i${LIBXSLT_INSTALL_PATH}-o${OUTPUT_DIR}/fi# 生成 tar.gz 包备用echo生成 tar.gz 包...cd${HNP_PUBLIC_PATH}/libxslt.orgtar-zcf${WORKDIR}/${OUTPUT_DIR}/ohos_libxslt_${LIBXSLT_VERSION}.tar.gz libxslt_${LIBXSLT_VERSION}/cd-/dev/nullecho打包完成echo输出文件echo -${OUTPUT_DIR}/libxslt.hnp (如果 hnpcli 可用)echo -${OUTPUT_DIR}/ohos_libxslt_${LIBXSLT_VERSION}.tar.gz3.4 执行打包# 赋予脚本执行权限chmodx pack_hnp.sh# 执行打包./pack_hnp.sh3.5 验证打包结果打包完成后验证生成的文件# 检查 HNP 包ls-lh output/libxslt.hnp# 检查 tar.gz 包ls-lh output/ohos_libxslt_*.tar.gz# 验证安装目录结构tree${LIBXSLT_INSTALL_PATH}/预期的安装目录结构/data/service/hnp/libxslt.org/libxslt_1.1.43/ ├── bin/ │ └── xsltproc # XSLT 处理工具 ├── lib/ │ ├── libxslt.a # 静态库 │ ├── libexslt.a # EXSLT 扩展库 │ └── libxslt.so # 动态库如果构建 ├── include/ │ └── libxslt/ # 头文件目录 ├── Copyright # 许可证文件 └── hnp.json # HNP 配置文件四、安装与使用4.1 安装 HNP 包手动安装使用 tar.gz# 在鸿蒙PC上执行# 1. 解压 tar.gz 包tar-xzf ohos_libxslt_*.tar.gz# 2. 复制到安装目录sudocp-r libxslt_*/* /data/service/hnp/libxslt.org/libxslt_*/# 3. 设置执行权限sudochmodx /data/service/hnp/libxslt.org/libxslt_*/bin/*# 4. 创建符号链接根据 hnp.json 配置# hnp 系统会自动处理 links 配置# 5. 配置库路径如果使用动态库exportLD_LIBRARY_PATH$LD_LIBRARY_PATH:/data/service/hnp/libxslt.org/libxslt_*/lib4.2 验证安装# 检查 xsltproc 是否可用xsltproc --version# 应该显示 libxslt 的版本信息# libxslt version 1.1.43# 检查库文件ls-lh /data/service/hnp/libxslt.org/libxslt_*/lib/4.3 使用 libxslt安装完成后可以在代码中链接 libxslt 库或使用 xsltproc 命令行工具。五、使用示例5.1 命令行工具使用xsltproc - XSLT 转换工具# 基本转换xsltproc stylesheet.xsl input.xmloutput.html# 指定输出文件xsltproc -o output.html stylesheet.xsl input.xml# 传递参数xsltproc --param namevaluestylesheet.xsl input.xml# 使用多个样式表xsltproc stylesheet1.xsl stylesheet2.xsl input.xml# 验证模式xsltproc --novalid stylesheet.xsl input.xml5.2 XSLT 样式表示例简单的 XML 到 HTML 转换创建example.xsl?xml version1.0 encodingUTF-8?xsl:stylesheetversion1.0xmlns:xslhttp://www.w3.org/1999/XSL/Transformxsl:templatematch/htmlheadtitle转换结果/title/headbodyh1数据列表/h1xsl:for-eachselect//itempxsl:value-ofselect.//p/xsl:for-each/body/html/xsl:template/xsl:stylesheet创建input.xml?xml version1.0 encodingUTF-8?dataitem项目 1/itemitem项目 2/itemitem项目 3/item/data执行转换xsltproc example.xsl input.xmloutput.html5.3 C 代码中使用 libxslt基本 XSLT 转换示例创建transform.c#includestdio.h#includelibxslt/xslt.h#includelibxslt/xsltutils.h#includelibxslt/transform.h#includelibxslt/xsltInternals.hintmain(){xsltStylesheetPtr stylesheetNULL;xmlDocPtr docNULL,resultNULL;constchar*params[161];inti;// 初始化xmlSubstituteEntitiesDefault(1);xmlLoadExtDtdDefaultValue1;// 加载样式表stylesheetxsltParseStylesheetFile((constxmlChar*)stylesheet.xsl);if(stylesheetNULL){fprintf(stderr,无法加载样式表\n);return1;}// 加载 XML 文档docxmlParseFile(input.xml);if(docNULL){fprintf(stderr,无法解析 XML 文件\n);xsltFreeStylesheet(stylesheet);return1;}// 设置参数params[0]NULL;// 执行转换resultxsltApplyStylesheet(stylesheet,doc,params);// 保存结果xsltSaveResultToFile(stdout,result,stylesheet);// 释放资源xsltFreeStylesheet(stylesheet);xmlFreeDoc(doc);xmlFreeDoc(result);xsltCleanupGlobals();xmlCleanupParser();return0;}编译和链接# 编译程序aarch64-unknown-linux-ohos-clang -o transform transform.c\-I/data/service/hnp/libxslt.org/libxslt_1.1.43/include\-I/data/service/hnp/libxml2.org/libxml2_2.15.0/include/libxml2\-L/data/service/hnp/libxslt.org/libxslt_1.1.43/lib\-L/data/service/hnp/libxml2.org/libxml2_2.15.0/lib\-lxslt -lxml25.4 使用参数在样式表中使用参数创建param.xsl?xml version1.0 encodingUTF-8?xsl:stylesheetversion1.0xmlns:xslhttp://www.w3.org/1999/XSL/Transformxsl:paramnametitle/xsl:templatematch/htmlheadtitlexsl:value-ofselect$title//title/headbodyh1xsl:value-ofselect$title//h1xsl:apply-templates//body/html/xsl:template/xsl:stylesheet使用参数xsltproc --param title我的标题param.xsl input.xml5.5 EXSLT 扩展函数使用 EXSLT 日期函数?xml version1.0 encodingUTF-8?xsl:stylesheetversion1.0xmlns:xslhttp://www.w3.org/1999/XSL/Transformxmlns:datehttp://exslt.org/dates-and-timesextension-element-prefixesdatexsl:templatematch/p当前日期:xsl:value-ofselectdate:date()//p/xsl:template/xsl:stylesheet5.6 实际应用场景XML 数据报告生成# 从 XML 数据生成 HTML 报告xsltproc report.xsl data.xmlreport.html数据格式转换# 将 XML 转换为另一种 XML 格式xsltproc convert.xsl source.xmltarget.xml批量转换# 批量转换多个文件forfilein*.xml;doxsltproc stylesheet.xsl$fileoutput_${file}done六、常见问题6.1 如何链接 libxslt 库问题编译时找不到 libxslt 库。解决方案指定头文件路径-I/data/service/hnp/libxslt.org/libxslt_1.1.43/include -I/data/service/hnp/libxml2.org/libxml2_2.15.0/include/libxml2指定库文件路径-L/data/service/hnp/libxslt.org/libxslt_1.1.43/lib -L/data/service/hnp/libxml2.org/libxml2_2.15.0/lib链接库-lxslt -lxml2完整编译命令aarch64-unknown-linux-ohos-clang -o program program.c\-I/data/service/hnp/libxslt.org/libxslt_1.1.43/include\-I/data/service/hnp/libxml2.org/libxml2_2.15.0/include/libxml2\-L/data/service/hnp/libxslt.org/libxslt_1.1.43/lib\-L/data/service/hnp/libxml2.org/libxml2_2.15.0/lib\-lxslt -lxml26.2 依赖 libxml2 的问题问题libxslt 需要 libxml2如何确保正确链接。解决方案确保 libxml2 已安装并在编译时同时链接两个库# 先链接 libxslt再链接 libxml2-lxslt -lxml26.3 如何使用静态库问题希望使用静态库而不是动态库。解决方案直接链接静态库文件aarch64-unknown-linux-ohos-clang -o program program.c\-I/data/service/hnp/libxslt.org/libxslt_1.1.43/include\-I/data/service/hnp/libxml2.org/libxml2_2.15.0/include/libxml2\/data/service/hnp/libxslt.org/libxslt_1.1.43/lib/libxslt.a\/data/service/hnp/libxslt.org/libxslt_1.1.43/lib/libexslt.a\/data/service/hnp/libxml2.org/libxml2_2.15.0/lib/libxml2.a6.4 XSLT 转换错误问题xsltproc 转换时出现错误。解决方案检查样式表语法xsltproc --novalid stylesheet.xsl input.xml查看详细错误信息xsltproc --debug stylesheet.xsl input.xml验证 XML 和 XSLT 文件xmllint --noout input.xml xmllint --noout stylesheet.xsl6.5 如何从源码构建 libxslt参考项目的构建脚本和文档# 1. 准备构建环境sudoaptupdatesudoaptinstall-y build-essential cmake# 2. 确保 libxml2 已安装# libxslt 依赖 libxml2# 3. 下载源码gitclone https://github.com/Harmonybrew/ohos-libxslt.gitcdohos-libxslt# 4. 使用 CMake 配置和编译cmake -DCMAKE_TOOLCHAIN_FILEpath/to/toolchain.cmake\-DCMAKE_INSTALL_PREFIX/path/to/install\-DLIBXML2_DIR/path/to/libxml2\-DLIBXSLT_WITH_PYTHONOFF\-DBUILD_SHARED_LIBSOFF\.makemakeinstall七、总结与最佳实践7.1 总结libxslt 是强大的 XSLT 转换库为鸿蒙PC提供了完整的 XML 转换能力✅功能全面完整的 XSLT 1.0 实现和 EXSLT 扩展✅性能优化针对大型 XML 文档进行了优化✅易于使用提供命令行工具和 C API✅标准兼容完全符合 XSLT 1.0 和 XPath 1.0 标准7.2 最佳实践样式表设计使用模板匹配而不是硬编码路径合理使用参数提高样式表复用性优化 XPath 表达式提高性能内存管理及时释放 xsltStylesheet、xmlDoc 等资源使用 xsltFreeStylesheet、xmlFreeDoc 等函数调用 xsltCleanupGlobals 清理全局状态错误处理检查所有 API 调用的返回值使用 xsltGetLastError 获取错误信息正确处理转换错误性能优化预编译样式表以提高性能对于重复转换缓存编译后的样式表使用流式处理处理大文件参数传递使用参数而不是硬编码值合理使用参数提高样式表灵活性注意参数的类型和格式7.3 适用场景libxslt 特别适合以下场景✅XML 转换将 XML 文档转换为其他格式✅报告生成从 XML 数据生成 HTML 报告✅数据转换在不同数据格式间进行转换✅Web 开发生成动态 Web 内容✅文档处理文档格式转换和发布
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

邢台哪有学做网站的沈阳网站建设公司熊掌号

如何用smol-vision优化你的AI视觉模型? 【免费下载链接】smol-vision 项目地址: https://ai.gitcode.com/hf_mirrors/merve/smol-vision 导语 smol-vision作为一个专注于AI视觉与多模态模型优化的开源项目,提供了一系列实用指南和工具&#xff…

张小明 2026/1/10 22:40:38 网站建设

做个网站商场需要多少搭建网站需要程序

如何3步搞定QQ音乐加密音频:实现跨设备播放的完整方案 【免费下载链接】QMCDecode QQ音乐QMC格式转换为普通格式(qmcflac转flac,qmc0,qmc3转mp3, mflac,mflac0等转flac),仅支持macOS,可自动识别到QQ音乐下载目录,默认转…

张小明 2026/1/11 0:16:35 网站建设

宠物网站建设策划报告山东营销型网站

在硬件研发过程中,如何有效设定研发节奏线一直是项目管理中的一项重要挑战。节奏线不仅影响着研发过程中的效率和资源分配,也直接关系到项目的质量与交付时间。本文将从硬件研发的典型痛点出发,结合系统工程方法与ALM、IPD管理体系&#xff0…

张小明 2026/1/10 20:02:26 网站建设

利用切片做网站背景图片网站建设的目录浏览

Unity Mod Manager完全攻略:从零开始掌握模组管理技巧 【免费下载链接】unity-mod-manager UnityModManager 项目地址: https://gitcode.com/gh_mirrors/un/unity-mod-manager 还在为Unity游戏的模组管理而烦恼吗?每次安装新模组都要担心兼容性问…

张小明 2026/1/10 19:24:43 网站建设

网站怎么做短信ip限定游戏资讯网站怎么做

一句话概括 最大池化是下采样的一种具体实现方式,它的作用是把特征图"浓缩",保留最显著的特征,同时缩小尺寸、减少计算量。1. 直观理解:最大池化是什么? 想象你在看一张高清照片,现在你需要向别人…

张小明 2026/1/11 8:25:49 网站建设

货代去什么网站开发客户最新新闻事件今天国内

Sonic助力文化遗产保护:复活历史人物讲述故事 在博物馆的昏黄灯光下,一幅泛黄的古人画像静静悬挂。突然,画中人微微启唇,眼神流转,开始用沉稳的声音讲述自己的生平——这不是电影特效,而是AI正在让历史“开…

张小明 2026/1/11 7:10:34 网站建设