首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用AvalonEdit编辑XML文件

如何使用AvalonEdit编辑XML文件
EN

Stack Overflow用户
提问于 2012-06-27 05:13:50
回答 2查看 4.6K关注 0票数 3

我想在我的应用程序中包含一个XML编辑器-类似于VS的具有自动着色等功能的XML编辑器。

AvalonEdit听起来是个不错的解决方案。

但是,AvalonEdit提供了C#语法的示例,而不是XML语法。有没有XML语法的示例?

EN

回答 2

Stack Overflow用户

发布于 2013-03-09 21:46:28

只需在您的XAML中使用SyntaxHighlighting="XML"

代码语言:javascript
复制
xmlns:avalonedit="http://icsharpcode.net/sharpdevelop/avalonedit"
...
<StackPanel>
    <avalonedit:TextEditor SyntaxHighlighting="XML"/>
</StackPanel>
票数 8
EN

Stack Overflow用户

发布于 2012-06-27 11:11:27

您所要做的就是更改Avalon中的xshd文件,以将其更改为所需的语言要求。Link已经在SharpDevelop Git中提供了许多公共语言语法突出显示功能

对于XML,xshd文件如下所示:

代码语言:javascript
复制
<SyntaxDefinition name="XML"     extensions=".xml;.xsl;.xslt;.xsd;.manifest;.config;.addin;.xshd;.wxs;.wxi;.wxl;.proj;.csproj;.vbproj;.ilproj;.booproj;.build;.xfrm;.targets;.xaml;.xpt;.xft;.map;.wsdl;.disco;.ps1xml;.nuspec" xmlns="http://icsharpcode.net/sharpdevelop/syntaxdefinition/2008">
<Color foreground="Green" name="Comment" exampleText="&lt;!-- comment --&gt;" />
<Color foreground="Blue" name="CData" exampleText="&lt;![CDATA[data]]&gt;" />
<Color foreground="Blue" name="DocType" exampleText="&lt;!DOCTYPE rootElement&gt;" />
<Color foreground="Blue" name="XmlDeclaration" exampleText='&lt;?xml version="1.0"?&gt;' />
<Color foreground="DarkMagenta" name="XmlTag" exampleText='&lt;tag attribute="value" /&gt;' />
<Color foreground="Red" name="AttributeName" exampleText='&lt;tag attribute="value" /&gt;' />
<Color foreground="Blue" name="AttributeValue" exampleText='&lt;tag attribute="value" /&gt;' />
<Color foreground="Teal" name="Entity" exampleText="index.aspx?a=1&amp;amp;b=2" />
<Color foreground="Olive" name="BrokenEntity" exampleText="index.aspx?a=1&amp;b=2" />

<RuleSet>
    <Span color="Comment" multiline="true">
        <Begin>&lt;!--</Begin>
        <End>--&gt;</End>
    </Span>
    <Span color="CData" multiline="true">
        <Begin>&lt;!\[CDATA\[</Begin>
        <End>]]&gt;</End>
    </Span>
    <Span color="DocType" multiline="true">
        <Begin>&lt;!DOCTYPE</Begin>
        <End>&gt;</End>
    </Span>
    <Span color="XmlDeclaration" multiline="true">
        <Begin>&lt;\?</Begin>
        <End>\?&gt;</End>
    </Span>
    <Span color="XmlTag" multiline="true">
        <Begin>&lt;</Begin>
        <End>&gt;</End>
        <RuleSet>
            <!-- Treat the position before '<' as end, as that's not a valid character
                 in attribute names and indicates the user forgot a closing quote. -->
            <Span color="AttributeValue" multiline="true" ruleSet="EntitySet">
                <Begin>"</Begin>
                <End>"|(?=&lt;)</End>
            </Span>
            <Span color="AttributeValue" multiline="true" ruleSet="EntitySet">
                <Begin>'</Begin>
                <End>'|(?=&lt;)</End>
            </Span>
            <Rule color="AttributeName">[\d\w_\-\.]+(?=(\s*=))</Rule>
            <Rule color="AttributeValue">=</Rule>
        </RuleSet>
    </Span>
    <Import ruleSet="EntitySet"/>
</RuleSet>

<RuleSet name="EntitySet">
    <Rule color="Entity">
        &amp;
        [\w\d\#]+
        ;
    </Rule>

    <Rule color="BrokenEntity">
        &amp;
        [\w\d\#]*
        #missing ;
    </Rule>
</RuleSet>
</SyntaxDefinition>
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11216008

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档