对包含命名空间 xmlns:wcm 和 xmlns:xsi 的 XML 进行正确编组和解组
今日不肯埋头,明日何以抬头!每日一句努力自己的话哈哈~哈喽,今天我将给大家带来一篇《对包含命名空间 xmlns:wcm 和 xmlns:xsi 的 XML 进行正确编组和解组》,主要内容是讲解等等,感兴趣的朋友可以收藏或者有更好的建议在评论提出,我都会认真看的!大家一起进步,一起学习!
我正在尝试处理 windows autounattend.xml 文件的读取和写入,以便创建和修改它们。我无法正确封送和解封 xmlns:wcm
和 xmlns:xsi
属性。
<?xml version="1.0" encoding="utf-8"?> <unattend xmlns="urn:schemas-microsoft-com:unattend"> <settings pass="windowspe"> <component name="microsoft-windows-international-core-winpe" processorarchitecture="amd64" publickeytoken="31bf3856ad364e35" language="neutral" versionscope="nonsxs" xmlns:wcm="http://schemas.microsoft.com/wmiconfig/2002/state" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"> <setupuilanguage> <uilanguage>en-us</uilanguage> </setupuilanguage> <inputlocale>0409:00000409</inputlocale> <systemlocale>en-us</systemlocale> <uilanguage>en-us</uilanguage> <uilanguagefallback>en-us</uilanguagefallback> <userlocale>en-us</userlocale> </component> <component name="microsoft-windows-setup" processorarchitecture="amd64" publickeytoken="31bf3856ad364e35" language="neutral" versionscope="nonsxs" xmlns:wcm="http://schemas.microsoft.com/wmiconfig/2002/state" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"> <diskconfiguration> <disk wcm:action="add"> <diskid>0</diskid> <willwipedisk>true</willwipedisk> <createpartitions> <!-- windows re tools partition --> <createpartition wcm:action="add"> <order>1</order> <type>primary</type> <size>300</size> </createpartition> <!-- system partition (esp) --> <createpartition wcm:action="add"> <order>2</order> <type>efi</type> <size>100</size> </createpartition> <!-- microsoft reserved partition (msr) --> <createpartition wcm:action="add"> <order>3</order> <type>msr</type> <size>128</size> </createpartition> <!-- windows partition --> <createpartition wcm:action="add"> <order>4</order> <type>primary</type> <extend>true</extend> </createpartition> </createpartitions> <modifypartitions> <modifypartition wcm:action="add"> <order>1</order> <partitionid>1</partitionid> <label>winre</label> <format>ntfs</format> <typeid>de94bba4-06d1-4d40-a16a-bfd50179d6ac</typeid> </modifypartition> <modifypartition wcm:action="add"> <order>2</order> <partitionid>2</partitionid> <label>system</label> <format>fat32</format> </modifypartition> <modifypartition wcm:action="add"> <order>3</order> <partitionid>3</partitionid> </modifypartition> <modifypartition wcm:action="add"> <order>4</order> <partitionid>4</partitionid> <label>windows</label> <letter>c</letter> <format>ntfs</format> </modifypartition> </modifypartitions> </disk> </diskconfiguration> <imageinstall> <osimage> <installto> <diskid>0</diskid> <partitionid>4</partitionid> </installto> <installtoavailablepartition>false</installtoavailablepartition> </osimage> </imageinstall> <userdata> <productkey> <key></key> <willshowui>never</willshowui> </productkey> <accepteula>true</accepteula> <fullname>admin</fullname> <organization></organization> </userdata> </component> </settings> <settings pass="offlineservicing"> <component name="microsoft-windows-lua-settings" processorarchitecture="amd64" publickeytoken="31bf3856ad364e35" language="neutral" versionscope="nonsxs" xmlns:wcm="http://schemas.microsoft.com/wmiconfig/2002/state" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"> <enablelua>false</enablelua> </component> </settings> <settings pass="generalize"> <component name="microsoft-windows-security-spp" processorarchitecture="amd64" publickeytoken="31bf3856ad364e35" language="neutral" versionscope="nonsxs" xmlns:wcm="http://schemas.microsoft.com/wmiconfig/2002/state" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"> <skiprearm>1</skiprearm> </component> </settings> <settings pass="specialize"> <component name="microsoft-windows-international-core" processorarchitecture="amd64" publickeytoken="31bf3856ad364e35" language="neutral" versionscope="nonsxs" xmlns:wcm="http://schemas.microsoft.com/wmiconfig/2002/state" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"> <inputlocale>0409:00000409</inputlocale> <systemlocale>en-us</systemlocale> <uilanguage>en-us</uilanguage> <uilanguagefallback>en-us</uilanguagefallback> <userlocale>en-us</userlocale> </component> <component name="microsoft-windows-security-spp-ux" processorarchitecture="amd64" publickeytoken="31bf3856ad364e35" language="neutral" versionscope="nonsxs" xmlns:wcm="http://schemas.microsoft.com/wmiconfig/2002/state" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"> <skipautoactivation>true</skipautoactivation> </component> <component name="microsoft-windows-sqmapi" processorarchitecture="amd64" publickeytoken="31bf3856ad364e35" language="neutral" versionscope="nonsxs" xmlns:wcm="http://schemas.microsoft.com/wmiconfig/2002/state" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"> <ceipenabled>0</ceipenabled> </component> <component name="microsoft-windows-shell-setup" processorarchitecture="amd64" publickeytoken="31bf3856ad364e35" language="neutral" versionscope="nonsxs" xmlns:wcm="http://schemas.microsoft.com/wmiconfig/2002/state" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"> <computername>-pc</computername> <productkey></productkey> </component> </settings> <settings pass="oobesystem"> <component name="microsoft-windows-shell-setup" processorarchitecture="amd64" publickeytoken="31bf3856ad364e35" language="neutral" versionscope="nonsxs" xmlns:wcm="http://schemas.microsoft.com/wmiconfig/2002/state" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"> <autologon> <password> <value></value> <plaintext>true</plaintext> </password> <enabled>true</enabled> <username>admin</username> </autologon> <oobe> <hideeulapage>true</hideeulapage> <hideoemregistrationscreen>true</hideoemregistrationscreen> <hideonlineaccountscreens>true</hideonlineaccountscreens> <hidewirelesssetupinoobe>true</hidewirelesssetupinoobe> <networklocation>home</networklocation> <skipuseroobe>true</skipuseroobe> <skipmachineoobe>true</skipmachineoobe> <protectyourpc>1</protectyourpc> </oobe> <useraccounts> <localaccounts> <localaccount wcm:action="add"> <password> <value></value> <plaintext>true</plaintext> </password> <description></description> <displayname>admin</displayname> <group>administrators</group> <name>admin</name> </localaccount> </localaccounts> </useraccounts> <registeredorganization></registeredorganization> <registeredowner>admin</registeredowner> <disableautodaylighttimeset>false</disableautodaylighttimeset> <firstlogoncommands> <synchronouscommand wcm:action="add"> <description>control panel view</description> <order>1</order> <commandline>reg add "hkey_current_user\software\microsoft\windows\currentversion\explorer\controlpanel" /v startuppage /t reg_dword /d 1 /f</commandline> <requiresuserinput>true</requiresuserinput> </synchronouscommand> <synchronouscommand wcm:action="add"> <order>2</order> <description>control panel icon size</description> <requiresuserinput>false</requiresuserinput> <commandline>reg add "hkey_current_user\software\microsoft\windows\currentversion\explorer\controlpanel" /v allitemsiconview /t reg_dword /d 0 /f</commandline> </synchronouscommand> <synchronouscommand wcm:action="add"> <order>3</order> <requiresuserinput>false</requiresuserinput> <commandline>cmd /c wmic useraccount where name="admin" set passwordexpires=false</commandline> <description>password never expires</description> </synchronouscommand> </firstlogoncommands> <timezone>central standard time</timezone> </component> </settings> </unattend>
我尝试使用 xml.name
、xml.attr
和字符串,但没有成功
const ( // A generic XML header suitable for use with the output of Marshal. Header = `<?xml version="1.0" encoding="UTF-8"?>` + "\n" WCM = `http://schemas.microsoft.com/WMIConfig/2002/State` XSI = `http://www.w3.org/2001/XMLSchema-instance` ) type UserData struct { AcceptEula bool `xml:"AcceptEula"` FullName string `xml:"FullName"` Organization string `xml:"Organization"` ProductKey struct { Key string `xml:"Key"` WillShowUI string `xml:"WillShowUI"` } `xml:"ProductKey"` } type OSImage struct { XMLName xml.Name `xml:"OSImage"` InstallToAvailablePartition bool `xml:"InstallToAvailablePartition"` InstallToDiskID uint32 `xml:"InstallTo>DiskID"` InstallToPatitionID uint32 `xml:"InstallTo>ParitionID"` } type ImageInstall struct { XMLName xml.Name `xml:"ImageInstall"` OSImage OSImage `xml:"OSImage"` } type CreatePartition struct { XMLName xml.Name `xml:"CreatePartition"` Order uint32 `xml:"Order"` Type string `xml:"Type"` Size uint64 `xml:"Size,omitempty"` Extend bool `xml:"Extend,omitempty"` Action xml.Attr `xml:"action,attr"` } type ModifyPartition struct { XMLName xml.Name `xml:"ModifyPartition"` Order uint32 `xml:"Order"` PartitionID uint32 `xml:"PartitionID"` Label string `xml:"Label,omitempty"` Format string `xml:"Format,omitempty"` TypeID string `xml:"TypeID,omitempty"` Letter string `xml:"Letter,omitempty"` Action xml.Attr `xml:"action,attr"` } type Disk struct { XMLName xml.Name `xml:"Disk"` Action xml.Attr `xml:"action,attr"` DiskID uint32 `xml:"DiskID"` WillWipeDisk bool `xml:"WillWipeDisk"` CreatePartitions []*CreatePartition `xml:"CreatePartitions>."` ModifyPartitions []*ModifyPartition `xml:"ModifyPartitions>."` } type DiskConfiguration struct { XMLName xml.Name `xml:"DiskConfiguration"` Disks []*Disk `xml:"Disk"` } type SetupUILanguage struct { XMLName xml.Name `xml:"SetupUILanguage"` UILanguage *UILanguage `xml:"UILanguage"` } type UserLocale struct { XMLName xml.Name `xml:"UserLocale"` Value string `xml:",chardata"` } type InputLocale struct { XMLName xml.Name `xml:"InputLocale"` Value string `xml:",chardata"` } type SystemLocale struct { XMLName xml.Name `xml:"SystemLocale"` Value string `xml:",chardata"` } type UILanguage struct { XMLName xml.Name `xml:"UILanguage"` Value string `xml:",chardata"` } type UILanguageFallback struct { XMLName xml.Name `xml:"UILanguageFallback"` Value string `xml:",chardata"` } type EnableLUA struct { XMLName xml.Name `xml:"EnableLUA"` Value bool `xml:",chardata"` } type SkipRearm struct { XMLName xml.Name `xml:"SkipRearm"` Value int32 `xml:",chardata"` } type SkipAutoActivation struct { XMLName xml.Name `xml:"SkipAutoActivation"` Value bool `xml:",chardata"` } type CEIPEnabled struct { XMLName xml.Name `xml:"CEIPEnabled"` Value int32 `xml:",chardata"` } type ComputerName struct { XMLName xml.Name `xml:"ComputerName"` Value string `xml:",chardata"` } type ProductKey struct { XMLName xml.Name `xml:"ProductKey"` Value string `xml:",chardata"` } type Password struct { XMLName xml.Name `xml:"Password"` Value string `xml:"Value"` PlainText bool `xml:"PlainText"` } type AutoLogon struct { XMLName xml.Name `xml:"AutoLogon"` Enabled bool `xml:"Enabled"` Username string `xml:"Username"` Password Password `xml:"Password"` } type OOBE struct { XMLName xml.Name `xml:"OOBE"` HideEULAPage bool `xml:"HideEULAPage,omitempty"` HideOEMRegistrationScreen bool `xml:"HideOEMRegistrationScreen,omitempty"` HideOnlineAccountScreens bool `xml:"HideOnlineAccountScreens,omitempty"` HideWirelessSetupInOOBE bool `xml:"HideWirelessSetupInOOBE,omitempty"` NetworkLocation string `xml:"NetworkLocation,omitempty"` SkipUserOOBE bool `xml:"SkipUserOOBE,omitempty"` SkipMachineOOBE bool `xml:"SkipMachineOOBE,omitempty"` ProtectYourPC int32 `xml:"ProtectYourPC,omitempty"` } type LocalAccount struct { XMLName xml.Name `xml:"LocalAccount"` Action xml.Attr `xml:"action,attr"` Password Password `xml:"Password"` Description string `xml:"Description"` DisplayName string `xml:"DisplayName"` Group string `xml:"Group"` Name string `xml:"Name"` } type LocalAccounts struct { XMLName xml.Name LocalAccount []*LocalAccount `xml:"LocalAccount"` } type UserAccounts struct { XMLName xml.Name `xml:"UserAccounts"` LocalAccounts LocalAccounts `xml:"LocalAccounts"` } type RegisteredOrganization struct { XMLName xml.Name `xml:"RegisteredOrganization"` Value string `xml:",chardata"` } type RegisteredOwner struct { XMLName xml.Name `xml:"RegisteredOwner"` Value string `xml:",chardata"` } type DisableAutoDaylightTimeSet struct { XMLName xml.Name `xml:"DisableAutoDaylightTimeSet"` Value bool `xml:",chardata"` } type CommandLine struct { XMLName xml.Name `xml:"CommandLine"` Value string `xml:",innerxml"` } type SynchronousCommand struct { XMLName xml.Name `xml:"SynchronousCommand"` Order uint32 `xml:"Order"` Description string `xml:"Description"` RequiresUserInput bool `xml:"RequiresUserInput"` CommandLine CommandLine `xml:"CommandLine"` } type FirstLogonCommands struct { XMLName xml.Name `xml:"FirstLogonCommands"` SynchronousCommand []*SynchronousCommand `xml:"SynchronousCommand"` } type TimeZone struct { XMLName xml.Name `xml:"TimeZone"` Value string `xml:",chardata"` } type Component struct { XMLName xml.Name `xml:"component"` Name string `xml:"name,attr"` ProcessorArchitecture string `xml:"processorArchitecture,attr"` PublicKeyToken string `xml:"publicKeyToken,attr"` Language string `xml:"language,attr"` VersionScope string `xml:"versionScope,attr"` // optional compontents SetupUILanguage *SetupUILanguage `xml:"SetupUILanguage"` UserLocale *UserLocale `xml:"UserLocale"` InputLocale *InputLocale `xml:"InputLocale"` SystemLocale *SystemLocale `xml:"SystemLocale"` UILanguage *UILanguage `xml:"UILanguage"` UILanguageFallback *UILanguageFallback `xml:"UILanguageFallback"` DiskConfiguration *DiskConfiguration `xml:"DiskConfiguration,omitempty"` ImageInstall *ImageInstall `xml:"ImageInstall,omitempty"` UserData *UserData `xml:"UserData,omitempty"` EnableLUA *EnableLUA `xml:"EnableLUA,omitempty"` SkipRearm *SkipRearm `xml:"SkipRearm,omitempty"` ProductKey *ProductKey `xml:"ProductKey,omitempty"` ComputerName *ComputerName `xml:"ComputerName,omitempty"` SkipAutoActivation *SkipAutoActivation `xml:"SkipAutoActivation,omitempty"` CEIPEnabled *CEIPEnabled `xml:"CEIPEnabled,omitempty"` AutoLogon *AutoLogon `xml:"AutoLogon,omitempty"` OOBE *OOBE `xml:"OOBE,omitempty"` UserAccounts *UserAccounts `xml:"UserAccounts"` RegisteredOrganization *RegisteredOrganization `xml:"RegisteredOrganization,omitempty"` RegisteredOwner *RegisteredOwner `xml:"RegisteredOwner,omitempty"` DisableAutoDaylightTimeSet *DisableAutoDaylightTimeSet `xml:"DisableAutoDaylightTimeSet,omitempty"` FirstLogonCommands *FirstLogonCommands `xml:"FirstLogonCommands,omitempty"` TimeZone *TimeZone `xml:"TimeZone,omitempty"` } type Settings struct { XMLName xml.Name `xml:"settings"` Pass string `xml:"pass,attr"` Components []*Component `xml:"component"` } type Unattend struct { XMLName xml.Name `xml:"unattend"` XMLNS xml.Attr `xml:"xmlns,attr"` Settings []*Settings `xml:"settings"` }
正确答案
xmlns:wcm
和 xmlns:xsi
并不是真正的属性,它们是经过特殊处理的。您的 xml 既没有 wcm
和 xsi
架构中的元素也没有属性,因此它们将被删除。为什么你的代码中需要它们?
如果您确实需要它们,您可以将以下字段添加到 component
结构中:
attr []xml.attr `xml:",any,attr"`
xml.Unmarshal
documentation says:
如果 xml 元素具有先前规则未处理的属性,并且结构体具有包含“,any,attr”的关联标记的字段,则 unmarshal 会在第一个此类字段中记录该属性值。
这里是一个例子:https://go.dev/play/p/tGDh5Ay1kZW
func main() { var u unattend err := xml.unmarshal([]byte(document), &u) if err != nil { log.fatal(err) } for _, a := range u.settings[0].components[0].attr { fmt.printf("unmatched attributes: %s:%s = %s\n", a.name.space, a.name.local, a.value) } }
输出:
unmatched attributes: xmlns:wcm = http://schemas.microsoft.com/wmiconfig/2002/state unmatched attributes: xmlns:xsi = http://www.w3.org/2001/xmlschema-instance
注意 1。此解决方案的缺点是:它仅处理
中的额外属性。但 xmlns:xxx
属性可以出现在任何元素中。一般情况下,您应该在数据模型的所有结构中添加 attr
数组。
注2.属性xmlns:wcm
和xmlns:xsi
不包含任何业务逻辑。他们没有提供有关设置和组件的信息。你真的需要它们吗?
注释 3. 绝对不需要将这些属性命名为 xmlns:wcm
和 xmlns:xsi
。这只是一种常见的做法。 xml 文档可以将它们命名为 xmlns:foo
和 xmlns:bar
- 这是完全有效的。即使值 "http://schemas.microsoft.com/wmiconfig/2002/state"
和 "http://www.w3.org/2001/xmlschema-instance"
也没有任何意义。它们可以是任何字符串,唯一的要求是匹配 URI format。 urn:microsoft:wmi-config:2002:state
与 http://schemas.microsoft.com/wmiconfig/2002/state
一样有效
解析 component
中的这些属性非常具体,对于在其他元素中或使用其他后缀或值声明这些属性的其他有效 xml 文档可能会失败。
更新
编组工作未按预期进行。 xml.marshal
专门处理 xmlns
命名空间,并将 attr
的 xmlns:wcm
和 xmlns:xsi
转换为命名空间 _xmlns
<component name="microsoft-windows-security-spp" processorarchitecture="amd64" publickeytoken="31bf3856ad364e35" language="neutral" versionscope="nonsxs" xmlns:_xmlns="xmlns" _xmlns:wcm="http://schemas.microsoft.com/wmiconfig/2002/state" _xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"> ... </component>
解决方法是对属性使用特殊类型:
type xmlnsattr struct { name xml.name value string } func (a xmlnsattr) label() string { if a.name.space == "" { return a.name.local } if a.name.local == "" { return a.name.space } return a.name.space + ":" + a.name.local } func (a *xmlnsattr) unmarshalxmlattr(attr xml.attr) error { a.name = attr.name a.value = attr.value return nil } func (a xmlnsattr) marshalxmlattr(name xml.name) (xml.attr, error) { return xml.attr{ name: xml.name{ space: "", local: a.label(), }, value: a.value, }, nil }
此类型通过构造一个属性并将命名空间嵌入到本地名称中来实现这一点。领域
attr []xml.attr `xml:",any,attr"`
正确解码/编码 xmlns:xxx
属性
示例:https://go.dev/play/p/VDofREl5nf1
输出:
Unmatched attributes: xmlns:wcm = http://schemas.microsoft.com/WMIConfig/2002/State Unmatched attributes: xmlns:xsi = http://www.w3.org/2001/XMLSchema-instance <unattend> <settings pass="windowsPE"> <component name="Microsoft-Windows-International-Core-WinPE" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> ... </component> ... </settings> </unattend>
以上就是《对包含命名空间 xmlns:wcm 和 xmlns:xsi 的 XML 进行正确编组和解组》的详细内容,更多关于的资料请关注golang学习网公众号!

- 上一篇
- 时间范围内数组元素的标准化方法

- 下一篇
- 为什么在 Goland (IDEA) 中 Go 源代码显示为灰色?如何恢复正常显示?
-
- Golang · Go问答 | 1年前 |
- 在读取缓冲通道中的内容之前退出
- 139浏览 收藏
-
- Golang · Go问答 | 1年前 |
- 戈兰岛的全球 GOPRIVATE 设置
- 204浏览 收藏
-
- Golang · Go问答 | 1年前 |
- 如何将结构作为参数传递给 xml-rpc
- 325浏览 收藏
-
- Golang · Go问答 | 1年前 |
- 如何用golang获得小数点以下两位长度?
- 477浏览 收藏
-
- Golang · Go问答 | 1年前 |
- 如何通过 client-go 和 golang 检索 Kubernetes 指标
- 486浏览 收藏
-
- Golang · Go问答 | 1年前 |
- 将多个“参数”映射到单个可变参数的习惯用法
- 439浏览 收藏
-
- Golang · Go问答 | 1年前 |
- 将 HTTP 响应正文写入文件后出现 EOF 错误
- 357浏览 收藏
-
- Golang · Go问答 | 1年前 |
- 结构中映射的匿名列表的“复合文字中缺少类型”
- 352浏览 收藏
-
- Golang · Go问答 | 1年前 |
- NATS Jetstream 的性能
- 101浏览 收藏
-
- Golang · Go问答 | 1年前 |
- 如何将复杂的字符串输入转换为mapstring?
- 440浏览 收藏
-
- Golang · Go问答 | 1年前 |
- 相当于GoLang中Java将Object作为方法参数传递
- 212浏览 收藏
-
- Golang · Go问答 | 1年前 |
- 如何确保所有 goroutine 在没有 time.Sleep 的情况下终止?
- 143浏览 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 542次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 508次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 497次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 484次学习
-
- 免费AI认证证书
- 科大讯飞AI大学堂推出免费大模型工程师认证,助力您掌握AI技能,提升职场竞争力。体系化学习,实战项目,权威认证,助您成为企业级大模型应用人才。
- 3次使用
-
- 茅茅虫AIGC检测
- 茅茅虫AIGC检测,湖南茅茅虫科技有限公司倾力打造,运用NLP技术精准识别AI生成文本,提供论文、专著等学术文本的AIGC检测服务。支持多种格式,生成可视化报告,保障您的学术诚信和内容质量。
- 153次使用
-
- 赛林匹克平台(Challympics)
- 探索赛林匹克平台Challympics,一个聚焦人工智能、算力算法、量子计算等前沿技术的赛事聚合平台。连接产学研用,助力科技创新与产业升级。
- 183次使用
-
- 笔格AIPPT
- SEO 笔格AIPPT是135编辑器推出的AI智能PPT制作平台,依托DeepSeek大模型,实现智能大纲生成、一键PPT生成、AI文字优化、图像生成等功能。免费试用,提升PPT制作效率,适用于商务演示、教育培训等多种场景。
- 171次使用
-
- 稿定PPT
- 告别PPT制作难题!稿定PPT提供海量模板、AI智能生成、在线协作,助您轻松制作专业演示文稿。职场办公、教育学习、企业服务全覆盖,降本增效,释放创意!
- 159次使用
-
- GoLand调式动态执行代码
- 2023-01-13 502浏览
-
- 用Nginx反向代理部署go写的网站。
- 2023-01-17 502浏览
-
- Golang取得代码运行时间的问题
- 2023-02-24 501浏览
-
- 请问 go 代码如何实现在代码改动后不需要Ctrl+c,然后重新 go run *.go 文件?
- 2023-01-08 501浏览
-
- 如何从同一个 io.Reader 读取多次
- 2023-04-11 501浏览