C# 无法识别元素 <Target> 下面的元素 <#text>

打开解决方案的时候,提示

而项目都变成如图:

 

解决方法:(注意32位和64位不一样)

根据提示找到 C:\Windows\Microsoft.NET\Framework\v4.0.30319 目录下的 Microsoft.Common.targets文件

然后找到提示中1573行

删除 圆圈内的字符。

 

 

<程序> → <变量说明部分> <语句部分> <变量说明部分> → <变量说明部分> <变量说明语句> ; | <变量说明语句> ; <变量说明语句> → <变量说明> <标识符列表> <变量说明> → int | string | bool <标识符列表> → <标识符列表> , <标识符> | <标识符> <标识符> → $ <字母> <字母序列> $ <语句部分> → <语句部分> ; <语句> | <语句> <语句> → <赋值语句>|<条件语句>|<循环语句> <赋值语句> → <标识符> := <表达式> <表达式> → <disjunction> <disjunction> → < conjunction > | <disjunction> or < conjunction > < conjunction > → < inversion > | < conjunction > and < inversion > < inversion > → not < inversion > | < 关系表达式 > < 关系表达式 > → <算术表达式> <关系运算符> <算术表达式> | <算术表达式> <算术表达式> → <term> | <算术表达式> <加法运算符> <term> <term> → <factor>| <term> <乘法运算符> <factor> <factor> → <标识符> | true | false | <字符串> | <整数数列> | ( <表达式> ) <关系运算符> → < | > | <> | >= | <= | == <加法运算符> → + | - <乘法运算符> → * | / | % <字符串> → “<字母序列>” <字母序列> → <字母序列><数字>|<字母序列><字母>|ε <整数数列> → <整数数列><数字>|<数字> <条件语句> → if (<表达式>)<嵌套语句> else <嵌套语句> <循环语句> → while (<表达式>): <嵌套语句> <嵌套语句> → <语句>; |<复合语句> <复合语句> → { <语句部分> } <字母> → a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z <数字> → 0|1|2|3|4|5|6|7|8|9 这些所有的语法定义与语义定义都需要添加,我该如何操作
最新发布
11-17
对于页面 <div class="container navigation"> <div class="row"> <div class="col nav"> <ul class="pc-nav" id="runoob-detail-nav"> <li><a href="//www.runoob.com/">首页</a></li> <li><a href="/html/html-tutorial.html">HTML</a></li> <li><a href="/css/css-tutorial.html">CSS</a></li> <li><a href="/js/js-tutorial.html">JavaScript</a></li> <li><a href="javascript:void(0);" data-id="vue">Vue</a></li> <li><a href="/react/react-tutorial.html">React</a></li> <!-- <li><a href="/nodejs/nodejs-tutorial.html">NodeJS</a></li>--> <li><a href="/python3/python3-tutorial.html">Python3</a></li> <!-- <li><a href="/python/python-tutorial.html">Python2</a></li> --> <li><a href="/java/java-tutorial.html">Java</a></li> <li><a href="/cprogramming/c-tutorial.html">C</a></li> <li><a href="/cplusplus/cpp-tutorial.html">C++</a></li> <li><a href="/csharp/csharp-tutorial.html">C#</a></li> <li><a href="javascript:void(0);" data-id="aiNav">AI</a></li> <li><a href="/go/go-tutorial.html">Go</a></li> <li><a href="/sql/sql-tutorial.html">SQL</a></li> <li><a href="/linux/linux-tutorial.html">Linux</a></li> <li><a href="/vscode/vscode-tutorial.html">VS Code</a></li> <!--<li><a href="/jquery/jquery-tutorial.html">jQuery</a></li>--> <li><a href="javascript:void(0);" data-id="bootstrap">Bootstrap</a></li> <li><a href="/git/git-tutorial.html">Git</a></li> <li><a href="/browser-history">本地书签</a></li><!-- <li><a href="https://www.jyshare.com/front-end/9235/" target="_blank">AI 编程助理</a></li> --> <!-- <li><a href="/w3cnote/knowledge-start.html" style="font-weight: bold;" onclick="_hmt.push(['_trackEvent', '星球', 'click', 'start'])" title="我的圈子">我的圈子</a></li> <li><a href="javascript:;" class="runoob-pop">登录</a></li> --> </ul> <ul class="mobile-nav"> <li><a href="//www.runoob.com/">首页</a></li> <li><a href="/html/html-tutorial.html">HTML</a></li> <li><a href="/css/css-tutorial.html">CSS</a></li> <li><a href="/js/js-tutorial.html">JS</a></li> <li><a href="/browser-history">本地书签</a></li> <li><a href="javascript:void(0)" class="search-reveal">Search</a> </li> </ul> </div> </div> </div> 识别到的结果 C:\own\app\python_code\.venv\Scripts\python.exe C:\own\app\python_code\work\入职培训\打印点击\导航栏识别测试.py 共识别出 8 个导航栏 导航栏 #1: <div class='container navigation'> 导航栏 #2: <div class='col nav'> 导航栏 #3: <ul class='pc-nav'> 导航栏 #4: <ul class='mobile-nav'> 导航栏 #5: <div class='container navigation'> 导航栏 #6: <div class='container navigation'> 导航栏 #7: <div class='row'> 导航栏 #8: <div class='col nav'> Process finished with exit code 0 识别不全啊 from selenium import webdriver from selenium.webdriver.common.by import By driver = webdriver.Chrome() driver.get("file:///C:/own/app/python_code/work/入职培训/打印点击/111.html") def is_navigation_bar(element, max_depth=5, current_depth=0): try: if current_depth > max_depth: return False if element.tag_name.lower() == 'nav': return True role = element.get_attribute('role') if role and role.lower() == 'navigation': return True class_name = element.get_attribute('class') if class_name: class_name = class_name.lower() if any(keyword in class_name for keyword in ['nav', 'navbar', 'navigation', 'menu', 'bar']): return True if contains_navigation_structure(element): return True try: parent = element.find_element(By.XPATH, '..') return is_navigation_bar(parent, max_depth, current_depth + 1) except: return False except Exception as e: print(f"[导航栏识别] 出错: {e}") return False def contains_navigation_structure(element): """增强结构识别:查找是否有多个 <a>、<p> 或 <li>,支持深层嵌套结构""" links = element.find_elements(By.XPATH, './/a | .//p | .//li') link_count = 0 for el in links: if el.tag_name == 'a': href = el.get_attribute('href') if href and href != 'javascript:void(0);': link_count += 1 elif el.tag_name in ['p', 'li']: text = el.text.strip() if text: link_count += 1 if link_count >= 2: return True lists = element.find_elements(By.XPATH, './/ul | .//ol') if len(lists) >= 1: return True return False # ✅ 使用 CSS 选择器查找所有可能的候选元素 def find_all_navigation_bars(driver): candidates = [] # 1. 查找 <nav> 标签 nav_elements = driver.find_elements(By.TAG_NAME, 'nav') candidates.extend(nav_elements) # 2. 查找 role="navigation" role_navs = driver.find_elements(By.XPATH, '//*[@role="navigation"]') candidates.extend(role_navs) # 3. 查找常见 class 名称的元素 class_keywords = ['nav', 'navbar', 'navigation', 'menu', 'bar'] for keyword in class_keywords: elements = driver.find_elements(By.CSS_SELECTOR, f'[class*="{keyword}"]') candidates.extend(elements) # 4. 查找包含 ul/li 结构的容器 list_containers = driver.find_elements(By.XPATH, '//div[.//ul] | //div[.//ol] | //nav[.//ul] | //nav[.//ol]') candidates.extend(list_containers) # 去重 + 筛选 unique_candidates = [] seen = set() for el in candidates: id_ = id(el) if id_ not in seen: seen.add(id_) if is_navigation_bar(el): unique_candidates.append(el) return unique_candidates # ✅ 主程序入口 nav_bars = find_all_navigation_bars(driver) print(f"共识别出 {len(nav_bars)} 个导航栏") for i, nav in enumerate(nav_bars): try: tag = nav.tag_name class_name = nav.get_attribute('class') print(f"导航栏 #{i+1}: <{tag} class='{class_name}'>") except Exception as e: print(f"导航栏 #{i+1}: 无法获取信息", e) driver.quit()
08-23
<Style x:Key="CheckBoxStyle1" TargetType="{x:Type CheckBox}"> <Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.WindowTextBrushKey}}"/> <Setter Property="Background" Value="{DynamicResource {x:Static SystemColors.WindowBrushKey}}"/> <Setter Property="IsChecked" Value="False"/> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type CheckBox}"> <ControlTemplate.Resources> <Storyboard x:Key="OnChecking"> <DoubleAnimationUsingKeyFrames Storyboard.TargetName="slider" Storyboard.TargetProperty="RenderTransform.Children[3].X"> <SplineDoubleKeyFrame KeyTime="00:00:00.3000000" Value="25"/> </DoubleAnimationUsingKeyFrames> </Storyboard> <Storyboard x:Key="OnUnchecking"> <DoubleAnimationUsingKeyFrames Storyboard.TargetName="slider" Storyboard.TargetProperty="RenderTransform.Children[3].X"> <SplineDoubleKeyFrame KeyTime="00:00:00.3000000" Value="0"/> </DoubleAnimationUsingKeyFrames> </Storyboard> </ControlTemplate.Resources> <DockPanel x:Name="dockPanel"> <ContentPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" Content="{TemplateBinding Content}" ContentStringFormat="{TemplateBinding ContentStringFormat}" ContentTemplate="{TemplateBinding ContentTemplate}" RecognizesAccessKey="True" VerticalAlignment="Center" Margin="0,0,5,0"/> <Grid Width="35" Height="15"> <Border x:Name="switchBackground" CornerRadius="12" Background="#d03144" BorderThickness="1" BorderBrush="#FFB0B0B0"> <Grid> <TextBlock x:Name="offText" Text="关" FontSize="10" Foreground="Black" HorizontalAlignment="Right" Margin="0,0,8,0" VerticalAlignment="Center" Opacity="1"/> <TextBlock x:Name="onText" Text="开" FontSize="10" Foreground="#FF4CAF50" HorizontalAlignment="Left" Margin="8,0,0,0" VerticalAlignment="Center" Opacity="0"/> </Grid> </Border> <Border x:Name="slider" HorizontalAlignment="Left" Width="10" Height="10" CornerRadius="9" BorderThickness="1" RenderTransformOrigin="0.5,0.5"> <Border.RenderTransform> <TransformGroup> <ScaleTransform ScaleX="1" ScaleY="1"/> <SkewTransform AngleX="0" AngleY="0"/> <RotateTransform Angle="0"/> <TranslateTransform X="0" Y="0" /> </TransformGroup> </Border.RenderTransform> <Border.BorderBrush> <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> <GradientStop Color="#FFCCCCCC" Offset="0"/> <GradientStop Color="#FF888888" Offset="1"/> </LinearGradientBrush> </Border.BorderBrush> <Border.Background> <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> <GradientStop Color="#FFFFFFFF" Offset="0"/> <GradientStop Color="#FFE0E0E0" Offset="1"/> </LinearGradientBrush> </Border.Background> </Border> </Grid> </DockPanel> <ControlTemplate.Triggers> <Trigger Property="IsChecked" Value="True"> <Setter TargetName="switchBackground" Property="Background" Value="#FFA5D6A7"/> <Setter TargetName="switchBackground" Property="BorderBrush" Value="#FF81C784"/> <Setter TargetName="onText" Property="Opacity" Value="1"/> <Setter TargetName="offText" Property="Opacity" Value="0"/> <Trigger.EnterActions> <BeginStoryboard Storyboard="{StaticResource OnChecking}" /> </Trigger.EnterActions> </Trigger> <Trigger Property="IsChecked" Value="False"> <Setter TargetName="switchBackground" Property="Background" Value="#d03144"/> <Setter TargetName="switchBackground" Property="BorderBrush" Value="#FFB0B0B0"/> <Setter TargetName="onText" Property="Opacity" Value="0"/> <Setter TargetName="offText" Property="Opacity" Value="1"/> <Trigger.EnterActions> <BeginStoryboard Storyboard="{StaticResource OnUnchecking}" /> </Trigger.EnterActions> </Trigger> <Trigger Property="IsEnabled" Value="False"> <Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}"/> <Setter TargetName="switchBackground" Property="Background" Value="#FFF5F5F5"/> <Setter TargetName="switchBackground" Property="BorderBrush" Value="#FFD0D0D0"/> <Setter TargetName="slider" Property="BorderBrush" Value="#FFD0D0D0"/> <Setter TargetName="slider" Property="Background" Value="#FFFAFAFA"/> </Trigger> </ControlTemplate.Triggers> </ControlTemplate> </Setter.Value> </Setter> </Style> 这段代码的问题还是当点击按钮显示开字样的时候,滑动按钮还是显示在最左侧的问题,请你帮我修正
11-12
用vs2022C#语言.net4.5WPF写一个程序,按照以下窗体布局添加程序功能:<Window x:Class="TextProofreader.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:TextProofreader" mc:Ignorable="d" Title="文本校对工具" Height="700" Width="1100" WindowStartupLocation="CenterScreen" Background="White" ResizeMode="CanResizeWithGrip" SizeChanged="Window_SizeChanged"> <Window.Resources> <Style x:Key="CustomButtonStyle" TargetType="Button"> <Setter Property="Background" Value="Transparent"/> <Setter Property="BorderBrush" Value="Transparent"/> <Setter Property="Foreground" Value="#FF333333"/> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="Button"> <Border Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}"> <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/> </Border> </ControlTemplate> </Setter.Value> </Setter> <Setter Property="Width" Value="35"/> <Setter Property="Height" Value="25"/> <Style.Triggers> <Trigger Property="IsMouseOver" Value="True"> <Setter Property="Background" Value="#FFE0E0E0"/> </Trigger> <Trigger Property="IsPressed" Value="True"> <Setter Property="Background" Value="#FF007ACC"/> <Setter Property="Foreground" Value="White"/> </Trigger> </Style.Triggers> </Style> </Window.Resources> <Grid> <Grid.RowDefinitions> <RowDefinition Height="30"/> <RowDefinition Height="*"/> <RowDefinition Height="40"/> <RowDefinition Height="200"/> <RowDefinition Height="40"/> </Grid.RowDefinitions> <!-- 自定义标题栏 --> <DockPanel Grid.Row="0" Background="#FFEEEEEE" LastChildFill="True"> <TextBlock Text="录入文稿校对工具 ——合成二营汉字录入集训队出品" Foreground="#FF333333" VerticalAlignment="Center" Margin="10,0,0,0" FontWeight="Bold"/> <StackPanel Orientation="Horizontal" HorizontalAlignment="Right" DockPanel.Dock="Right"> <Button x:Name="MinimizeButton" Style="{StaticResource CustomButtonStyle}" Click="MinimizeButton_Click"> <TextBlock Text="─" FontSize="14" HorizontalAlignment="Center" VerticalAlignment="Center"/> </Button> <Button x:Name="MaximizeButton" Style="{StaticResource CustomButtonStyle}" Click="MaximizeButton_Click"> <TextBlock Text="□" FontSize="12" HorizontalAlignment="Center" VerticalAlignment="Center"/> </Button> <Button x:Name="CloseButton" Style="{StaticResource CustomButtonStyle}" Click="CloseButton_Click"> <TextBlock Text="×" FontSize="16" HorizontalAlignment="Center" VerticalAlignment="Center"/> </Button> </StackPanel> </DockPanel> <!-- 主内容区域 --> <Grid Grid.Row="1" Margin="10"> <Grid.ColumnDefinitions> <ColumnDefinition Width="*"/> <ColumnDefinition Width="*"/> </Grid.ColumnDefinitions> <!-- 原文文本框 --> <DockPanel Grid.Column="0" Margin="0,0,5,0"> <TextBlock DockPanel.Dock="Top" Text="原文:" Foreground="#FF333333" Margin="0,0,0,5" FontWeight="Bold"/> <RichTextBox x:Name="OriginalText" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto" Background="White" Foreground="#FF333333" BorderBrush="#FFCCCCCC" BorderThickness="1" IsDocumentEnabled="True"> <FlowDocument/> </RichTextBox> </DockPanel> <!-- 待校对文本框(校对后变为标注输出区域) --> <DockPanel Grid.Column="1" Margin="5,0,0,0"> <TextBlock DockPanel.Dock="Top" Text="待校对文本/标注输出:" Foreground="#FF333333" Margin="0,0,0,5" FontWeight="Bold"/> <RichTextBox x:Name="ProofreadText" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto" Background="White" BorderBrush="#FFCCCCCC" BorderThickness="1" IsDocumentEnabled="True"> <FlowDocument/> </RichTextBox> </DockPanel> </Grid> <!-- 按钮区域 --> <StackPanel Grid.Row="2" Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center"> <Button x:Name="CheckButton" Content="校对" Width="80" Height="30" Margin="5" Background="#FF4CAF50" Foreground="White" Click="CheckButton_Click" FontWeight="Bold"/> <Button x:Name="CopyButton" Content="复制到剪贴板" Width="120" Height="30" Margin="5" Background="#FF2196F3" Foreground="White" Click="CopyButton_Click" FontWeight="Bold"/> <Button x:Name="ClearButton" Content="清空" Width="80" Height="30" Margin="5" Background="#FFFF5722" Foreground="White" Click="ClearButton_Click" FontWeight="Bold"/> <Button x:Name="AboutButton" Content="关于" Width="80" Height="30" Margin="5" Background="#FF9C27B0" Foreground="White" Click="AboutButton_Click" FontWeight="Bold"/> </StackPanel> <!-- 错误记录区域 --> <DockPanel Grid.Row="3" Margin="10,0,10,10"> <TextBlock DockPanel.Dock="Top" Text="错误记录:" Foreground="#FF333333" Margin="0,0,0,5" FontWeight="Bold"/> <ListBox x:Name="ErrorListBox" Background="White" Foreground="#FF333333" BorderBrush="#FFCCCCCC" BorderThickness="1" SelectionChanged="ErrorListBox_SelectionChanged"> <ListBox.ItemTemplate> <DataTemplate> <TextBlock Text="{Binding ErrorDescription}" TextWrapping="Wrap"/> </DataTemplate> </ListBox.ItemTemplate> </ListBox> </DockPanel> <!-- 状态栏 --> <StatusBar Grid.Row="4" Background="#FFEEEEEE" Foreground="#FF333333"> <StatusBarItem> <TextBlock x:Name="StatusText" Text="就绪"/> </StatusBarItem> </StatusBar> </Grid> </Window> 以上窗体左边的文本是用来放置原文,即用来参考的文本,右边的文本框是待校对的文本。 在用户放置原文与待校对文本后,按下“校对”按钮时,用优秀的文本比对算法来计算文本之间的差异。判断待校对文本中有无多字、少字、错字的情况。 在识别到错情后,按照以下规则,在待校对文本的文本框中输出待校对文本的标注,为出现错情的位置按分类添加标注:错字添加红色背景突出显示、多字添加黄色背景突出显示、漏字添加“<漏字:XXX>”占位文本并用墨绿色背景突出显示,其中XXX代表漏掉的文字内容。 下方再添加一个列表框用于记录错情。如果有错误情况,出现位置按第几段第几个字符开始位置起算,错误情况(漏字、少字、多字)字体按上面的规则设置字体颜色。当用户单击列表框某一项时,原文本框与待校对文本框要跳转至错误位置,并选中错误的区域,若是少字情况没有选择内容,则选择少字区域前后的两个字符。 用户按下:“复制到剪贴板”按钮可以把错误信息复制到剪贴板中。 用户按下清空时会把数据清空、控件恢复到程序打开时的状态。 用户按下“关于”时,要显示关于信息。 窗体代码我已写好,请结合窗体代码,写出逻辑代码
09-22
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值